[Javascript] [SOLVED] JS Help: Dynamic form control
Michael Hulse
micky at ambiguism.com
Sun Mar 5 20:47:20 CST 2006
On Mar 5, 2006, at 11:32 AM, Troy III Ajnej wrote:
> Sorry, I've just tested it. It doesn't work for me in either NN, FX
> nor IE.
Hmm, that is strange... I am on a Mac though (tested Safari/Firefox),
and only tested it in IE6/PC, so it sounds like I am missing
something...
Here is the full code (Javascript is in external file):
<snip>
function event_attach(event, func) {
if (window.attachEvent) {
window.attachEvent(event, func);
}
else {
if((typeof(func)).toLowerCase() != 'function') {
return;
}
if((typeof(document.event_handlers)).toLowerCase() == 'undefined') {
document.event_handlers = new Array();
}
if((typeof(document.event_handlers[ event ])).toLowerCase() ==
'undefined') {
document.event_handlers[ event ] = new Array();
}
if((typeof(eval('window.' + event))).toLowerCase() != 'function') {
eval('window.' + event + ' = function () { if
((typeof(document.event_handlers[ \'' + event + '\' ])).toLowerCase()
!= \'undefined\') { for (i = document.event_handlers[ \'' + event + '\'
].length - 1 ; i >= 0 ; i--) { document.event_handlers[ \'' + event +
'\' ][ i ](); } } } ');
}
document.event_handlers[ event ][ document.event_handlers[ event
].length ] = func;
}
}
var counter = 0;
function moreFields() {
counter++;
var newFields = document.getElementById('readroot').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
newFields.firstChild.nodeValue=counter + '. ';
changeId(newFields, counter);
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
function delField() {
var writeroot = document.getElementById('writeroot');
if(counter >= 1) {
writeroot.parentNode.removeChild(writeroot.previousSibling);
counter--;
}
}
function changeId(r, c) {
var rKids = r.getElementsByTagName('*');
var i = rKids.length;
var rKid;
while(i--) {
rKid = rKids[i];
if (rKid.id) rKid.id = rKid.id + c;
if (rKid.name) rKid.name = rKid.name + c;
}
}
event_attach('onload', moreFields);
XHTML:
<div id="readroot" style="display: none">
<div class="fm-req">
<label for="item_">* Item name:</label>
<input name="item_" id="item" type="text" title="Item name" />
</div>
<div class="fm-req">
<label for="product_">* Product #:</label>
<input name="product_" id="product" type="text" title="Product
number" />
</div>
<div class="fm-opt">
<label for="quantity_">Quantity desired:</label>
<input name="quantity_" id="quantity" type="text" title="Desired
quantity" />
</div>
<input class="fm-remove" id="remove" type="button" value="Remove Item"
onclick="delField();" />
<div class="horizRule"></div>
</div>
<form name='contact_us' id='contact_us' method="post"
action="/inc/process.php">
<fieldset>
<legend>Choose Overstock Item(s)</legend>
<span id="writeroot"></span>
<div id="fm-add" class="fm-req">
<input type="button" value="Add Item" onclick="moreFields()" />
</div>
</fieldset>
<div id="fm-submit" class="fm-req">
<input name="submit" value="Submit" type="submit" title="Submit"
/> <input name="Reset" value="Reset" type="reset" title="Reset" />
</div>
</form>
</snip>
On Mar 5, 2006, at 1:26 PM, Troy III Ajnej wrote:
> Here is the working code for NN, FX and the doubted IE
Great! Perfect! Thank you so much for your help, I really appreciate
you time. :)
I am glad to call this job done. ;)
I hope that one day I can help you out. :D
Have a great day,
Cheers,
Micky
More information about the Javascript
mailing list