Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 15 of 15
  1. #1
    Regular Coder
    Join Date
    Apr 2012
    Posts
    125
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Having problem adding textboxes dynamically by DIV

    Greetings mates.

    This is really a jQuery question but since is integrated with classic asp, it could be deleted if I post it on jquery for asp.net forum, hence here.

    I am building a questionnaire (sort of) form and some of responses might require additional textboxes.

    As a result, we are trying to use jquery or just regular JavaScript to give participants the opportunity to add additional rows to each div should they wish to.

    So far, the simple JavaScript I am using is not working.

    For instance, I have a div with ID of "addrow". with an ADD button next to that div.

    Our expectation is that if the participant clicks that ADD button, the textboxes inside that div should be cloned to as many rows as they wish.

    However, when I click the ADD button, it adds just one textbox.

    Can someone please help?

    Code:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Questionnaire</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <style type="text/css">
        .bs-example{
        	margin-left: 250px;
        	margin-top: 30px;
        }
    </style>
     <script type="text/javascript">
    
             var NumOfRow = 1;
    
             function Button1_onclick(){
                 NumOfRow++;
    
                 // get the refference of the main Div
                 var addrow = document.getElementById('addrow');
    
                 // create new div that will work as a container
                 var newDiv = document.createElement('div');
                 newDiv.setAttribute('id','innerDiv'+NumOfRow);
    
                 //create span to contain the text
                 var newSpan = document.createElement('span');
                 newSpan.innerHTML = "Complete the following";
    
                 // create new textbox for email entry
                 var newTextBox = document.createElement('input');
                 newTextBox.type = 'text';
                 newTextBox.setAttribute('id','sourcename1'+NumOfRow);
                 newTextBox.setAttribute('id','sourceaddress1'+NumOfRow);
                 newTextBox.setAttribute('id','income1'+NumOfRow);
                 // create remove button for each of the controls
                 var newButton = document.createElement('input');
                 newButton.type = 'button';
                 newButton.value = 'Remove';
                 newButton.id = 'btn'+NumOfRow;
    
                 // atach event for remove button click
                 newButton.onclick = function RemoveEntry() {
                     var addrow = document.getElementById('addrow');
                     addrow.removeChild(this.parentNode);
                 }
    
                 // append the span, textbox and the button
                 newDiv.appendChild(newSpan);
                 newDiv.appendChild(newTextBox);
                 newDiv.appendChild(newButton);
    
                 // finally append the new div to the addrow div
                 addrow.appendChild(newDiv);
    
             }
         </script>
    </head>
    <body>
    <div class="bs-example">
        <form class="form-inline" action="process.asp" role="form">
            <div class="form-group">
                <label  for="employeename">Employee Name</label><br>
                <input type="text" style="width:375px;" class="form-control" name="employeename" id="employeename" placeholder="Employee name...">
            </div>
            <div class="form-group">
                <label for="ttitle">Title</label><br>
                <input type="text" style="width:375px;" class="form-control" name="ttitle" id="ttitle" placeholder="Title...">
            </div><br><br><br>
           <div id="addrow">
            <div class="form-group">
    		   <label for="sourcename1">Name</label><br>
    		   <input type="text" style="width:250px;" class="form-control" name="sourcename1" id="sourcename1" placeholder="Name of income source...">
    		</div>
    		<div class="form-group">
    		    <label for="sourceaddress1">Address</label><br>
    		    <input type="text" style="width:250px;" class="form-control" name="sourceaddress1" id="sourceaddress1" placeholder="Address of income source">
    		</div>
    	    <div class="form-group">
    	    <label for="income1">Income</label><br>
    	    <input type="text" style="width:250px;"  class="form-control" name="income1" id="income1" placeholder="income...">
            </div></div><input id="Button1" type="button" value="Add More" onclick="Button1_onclick()" /> <br><br><br>
            <div class="form-group">
                <label for="spousename">Name</label><br>
                <input type="text" style="width:250px;" class="form-control" name="spousename" id="spousename" placeholder="Spouse Name...">
            </div>
            <div class="form-group">
                <label for="spouseAddress">Address</label><br>
                <input type="text" style="width:250px;" class="form-control" name="spouseAddress" id="spouseAddress" placeholder="Address of income source...">
            </div>
            <div class="form-group">
                <label for="spouseIncome">Income</label><br>
                <input type="text" style="width:250px;"  class="form-control" name="spouseIncome" id="spouseIncome" placeholder="Income...">
            </div><br><br><br>
            <div class="form-group">
                <label for="dividentname">Name</label><br>
                <input type="email" style="width:250px;" class="form-control" name="dividentname" id="dividentname" placeholder="Divident name...">
            </div>
            <div class="form-group">
                <label for="dividentaddress">Address</label><br>
                <input type="text" style="width:250px;" class="form-control" name="dividentaddress" id="dividentaddress" placeholder="Address of divident...">
            </div>
    
            <div class="form-group">
                <label for="dividentAmt">Divident Amount</label><br>
                <input type="text" style="width:250px;"  class="form-control" name="reimbursmentName" id="reimbursmentName" placeholder="Divident amount...">
            </div><br><br><br>
             <div class="form-group">
                <label for="reimbursmentName">Name</label><br>
                <input type="text" style="width:250px;" class="form-control" name="reimbursmentName" id="reimbursmentName" placeholder="Reimbursement name...">
            </div>
            <div class="form-group">
                <label for="reimburseAddr">Address of Reimbursement</label><br>
                <input type="password" style="width:250px;" class="form-control" name="reimburseAddr" id="reimburseAddr" placeholder="Reimbursement Address...">
            </div>
            <div class="form-group">
                <label for="remursementAmt">Reinbursement Amount</label><br>
                <input type="text" style="width:250px;"  class="form-control" name="remursementAmt" id="remursementAmt" placeholder="Remursement Amount">
            </div><br><br><br>
            <div class="form-group">
              <label for="inputHonoraria">Honoraria</label><br>
              <input type="text" style="width:250px;" class="form-control" name="inputHonoraria" id="inputHonoraria" placeholder="Honoraria from a single source...">
            </div>
            <div class="form-group">
             <label for="giftname">Name</label><br>
              <input type="text" style="width:250px;" class="form-control" name="giftname" id="giftname" placeholder="Gift name...">
            </div>
            <div class="form-group">
               <label for="giftaddress">Gift Address</label><br>
               <input type="text" style="width:250px;"  class="form-control" name=giftaddress" id="giftaddress" placeholder="Address of gift...">
            </div><br><br><br>
            <div class="form-group">
                <label for="giftamount">Gift Amount</label><br>
                <input type="text" style="width:250px;" class="form-control" name=giftamount" id="giftamount" placeholder="Gift amount...">
            </div>
            <div class="form-group">
                <label for="orgname">Name of Organization</label><br>
                <input type="text" style="width:250px;" class="form-control" name="orgname" id="orgname" placeholder="Name of organization...">
            </div>
            <div class="form-group">
                <label for="orgaddresss">Address of Organization</label><br>
                <input type="text" style="width:250px;"  class="form-control" name="orgaddresss" id="orgaddresss" placeholder="Address of organization...">
            </div><br><br><br>
            <div class="form-group">
                <label for="creditorname">Name of Creditor</label><br>
                <input type="text" style="width:250px;" class="form-control" name="creditorname" id="creditorname" placeholder="Name of creditor...">
            </div>
            <div class="form-group">
                <label for="creditoraddress">Address of creditor</label><br>
                <input type="text" style="width:250px;" class="form-control" name="creditoraddress" id="creditoraddress" placeholder="Address of creditor...">
            </div>
            <div class="form-group">
                <label for="creditAmt">Credit Amount</label><br>
                <input type="text" style="width:250px;"  class="form-control" name="creditAmt" id="creditAmt" placeholder="Credit Amount...">
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
        <br>
    </div>
    </body>
    </html>
    Thanks for your help
    Last edited by simflex; 02-16-2017 at 05:50 PM.

  2. #2
    Master Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    5,104
    Thanks
    19
    Thanked 538 Times in 532 Posts
    However, when I click the ADD button, it adds just one textbox.
    because that is what you have coded.
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  3. #3
    Regular Coder
    Join Date
    Apr 2012
    Posts
    125
    Thanks
    4
    Thanked 0 Times in 0 Posts
    Thanks for your response.

    Yes, you are right. I caught that and have since modified.

    Now, it shows the three textboxes but it is not working the way we would like it.

    For instance, additional textboxes are added, it needs to inherit the properties of the textboxes they are cloned from.

    For instance, newtextbox1 is supposed to cloned from sourcename1, newtexbox2 is supposed to be cloned from sourceaddress1 and newtextbox3 is supposed to be cloned from income1. This way, when they are inserted into the database, they are tied to their original textboxes.

    I don't know how to do this.

    Can you please?

    Here are the changes I made:

    Code:
                 // create new textboxes for sourcename1, sourceaddress1 and income1
                 var newTextBox1 = document.createElement('input');
                 var newTextBox2 = document.createElement('input');
                 var newTextBox3 = document.createElement('input');
                 newTextBox1.type = 'text';
                 newTextBox2.type = 'text';
                 newTextBox3.type = 'text';
                 newTextBox1.setAttribute('id','sourcename1'+NumOfRow);
                 newTextBox2.setAttribute('id','sourceaddress1'+NumOfRow);
                 newTextBox3.setAttribute('id','income1'+NumOfRow);
                 
                // Then furter down
                 
                 // append the span, textbox and the button
                 newDiv.appendChild(newSpan);
                 newDiv.appendChild(newTextBox1);
                 newDiv.appendChild(newTextBox2);
                 newDiv.appendChild(newTextBox3);
                 newDiv.appendChild(newButton);

  4. #4
    Master Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    5,104
    Thanks
    19
    Thanked 538 Times in 532 Posts
    you have forgotten to add the name attributes.
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  5. #5
    Regular Coder
    Join Date
    Apr 2012
    Posts
    125
    Thanks
    4
    Thanked 0 Times in 0 Posts
    I think you meant this?-screenshot-png

    Code:
       newTextBox1.setAttribute('id','name',name1'+NumOfRow);
       newTextBox2.setAttribute('id','name',address1'+NumOfRow);
       newTextBox3.setAttribute('id','name',income1'+NumOfRow);
    Maybe I am being unrealistic but if that's what I needed to add, it should look similar to original textboxes they are cloned from no?

    Please see screenshot

  6. #6
    Senior Coder CFMaBiSmAd's Avatar
    Join Date
    Oct 2006
    Location
    Denver, Colorado USA
    Posts
    3,873
    Thanks
    3
    Thanked 454 Times in 444 Posts
    I have an aversion to writing out multiple lines of bespoke code who's purpose is to build up other pieces of code that already exist somewhere, because it's not general purpose and is error prone every time you use it. See the following general purpose 'template' method, where the first instance of 'whatever' you want to dynamically add is a template that just gets appended where you want it -
    Code:
    <script type="text/javascript">
    
    function addField()
    {
        // create an empty div element
        var div1 = document.createElement('div');
    
        // get the template html and put it into the empty div
        div1.innerHTML = document.getElementById('template').innerHTML + "<input type='button' onClick='removeField(this)' value='Remove'>";
    
        // append the new div to the target area on the page
        document.getElementById('add_here').appendChild(div1);
    }
    
    function removeField(div){
        document.getElementById('add_here').removeChild(div.parentNode);
    }
    </script>
    
    <body>
    
    <form method='post' action='your_form_action_here'>
        <!-- Template. This first instance of "whatever" is in the template div will be appended in the add_here div -->
        <div id="template">
            <div class="form-group">
    		   <label>Name<br>
    		   <input type="text" style="width:250px;" class="form-control" name="sourcename[]" placeholder="Name of income source..."></label>
    		</div>
    		<div class="form-group">
    		    <label>Address<br>
    		    <input type="text" style="width:250px;" class="form-control" name="sourceaddress[]" placeholder="Address of income source"></label>
    		</div>
    	    <div class="form-group">
    	    <label>Income<br>
    	    <input type="text" style="width:250px;"  class="form-control" name="income[]" placeholder="income..."></label>
            </div>
    		<div><input type="button" onClick="addField()" value="Add More"></div>
        </div>
        <!-- container to hold the dynamically added instances of "whatever" -->
        <div id="add_here">
        </div>
    <input type='submit'>
    </form>
    Note: by making the field names into arrays, you don't have to produce or maintain incrementally named variables.
    Last edited by CFMaBiSmAd; 02-16-2017 at 10:34 PM.
    Finding out HOW to do something is called research, i.e. keep searching until you find the answer. After you attempt to do something and cannot solve a problem with it yourself, would be when you ask others for help.

  7. #7
    Regular Coder
    Join Date
    Apr 2012
    Posts
    125
    Thanks
    4
    Thanked 0 Times in 0 Posts
    Thank you guys very much.

  8. #8
    Master Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    5,104
    Thanks
    19
    Thanked 538 Times in 532 Posts
    Quote Originally Posted by CFMaBiSmAd View Post
    Note: by making the field names into arrays, you don't have to produce or maintain incrementally named variables.
    I'm pretty sure Perl doesn't need the [] and whether ASP needs them I don't know, that's why I intentionally left them out.
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  9. #9
    Temporarily banned
    Join Date
    Feb 2016
    Location
    Keene, NH
    Posts
    1,667
    Thanks
    2
    Thanked 238 Times in 228 Posts
    Quote Originally Posted by Dormilich View Post
    I'm pretty sure Perl doesn't need the [] and whether ASP needs them I don't know, that's why I intentionally left them out.
    Well since you can't have more than one field with the same name in teh same form successfully submit, how in blazes would you differentiate between them?

    @CFMaBiSmAd, while not a fan of wrapping the label around the label text and the input, it's a good call in this case to do so -- removes the need to update the FOR attribute to match the ID, meaning you don't need ID's on the input either. For dynamically adding new elements, that's a VERY good call.

    NOT that I'd be using innerHTML for any of this since that trips the parser... nor would I be wasting bandwidth on those pointless placeholders when you've got perfectly good labels...

    A bit more complex, but uses the DOM so it runs faster and won't trigger unwanted behaviors:

    Code:
    (function(d) {
    	// self-instancing function to isolate scope from other scripts
    
    	function eventProcess(e) {
    		e = e || window.event;
    		if (!e.target) e.target = window.srcElement;
    		return e;
    	}
    
    	function incomeRowRemove(e) {
    		e = eventProcess(e);
    		e.target.parentNode.parentNode.removeChild(e.target.parentNode);
    	}
    	
    	function makeLabelInput(name, text, type, parent) {
    		var
    			label = parent.appendChild(d.createElement('label')),
    			input = label.appendChild(d.createElement(
    				type == 'textarea' ? 'textarea' : 'input'
    			));
    		if (type != 'textarea') input.type = 'type';
    		input.name = name;
    		label.insertBefore(d.createTextNode(text), input);
    		label.insertBefore(d.createElement('br'), input);
    		label.appendChild(d.createElement('br'));
    	}
    
    	function incomeRowMake(e) {
    		e = eventProcess(e);
    		var wrapper = d.createElement('div');
    		makeLabelInput('incomeName[]', 'Name:', 'text', wrapper);
    		makeLabelInput('incomeAddress[]', 'Address:', 'text', wrapper);
    		makeLabelInput('income[]', 'Amount:', 'text', wrapper);
    		var button = wrapper.appendChild(d.createElement('button'));
    		button.appendChild(d.createTextNode('Remove'));
    		button.type = 'button';
    		button.onclick = incomeRowRemove;
    		e.target.parentNode.insertBefore(wrapper, e.target);
    	}
    	
    	var
    		incomeWrapper = d.getElementById('incomeSources'),
    		addButton = incomeWrapper.appendChild(d.createElement('button'));
    		
    	addButton.type = 'button';
    	addButton.appendChild(d.createTextNode('Add More'));
    	addButton.onclick = incomeRowMake;
    
    })(document);
    On the HTML side, I used a H2 instead of a legend since the latter are a PITA to style thanks to no two browsers being on the same page on HOW they should be styled -- and legend now being optional as of XHTML 1.0 and HTML 5, I say go ahead and use the proper depth heading, something your original page is sorely MISSING. Likewise sets of related input fields should be grouped by FIELDSETS. Hence my use of same in the base markup of:

    Code:
    		<fieldset id="incomeSources">
    			<h2>Income Sources:</h2>
    			<div>
    				<label>
    					Name:<br>
    					<input type="text" name="incomeName[]"><br>
    				</label>
    				<label>
    					Address:<br>
    					<input type="text" name="incomeAddress[]"><br>
    				</label>
    				<label>
    					Amount:<br>
    					<input type="text" name="income[]"><br>
    				</label>
    			</div>
    		</fieldset>
    Live demo here: (without the bootcrap slathered all over the page)
    Index of /for_others/simflex/addIncomeLine/ - CutCodeDown

    If one were to write that using ]my new elementals.js library (cheap plug) it would read like this:

    Code:
    (function() {
    	// self-instancing function to isolate scope from other scripts
    
    	function incomeRowRemove(e) {
    		e = _.eventProcess(e);
    		_.nodeRemove(e.target.parentNode);
    	}
    	
    	function makeLabelInput(name, text, type, parent) {
    		var label = _.make('label', { content : text, last : parent });
    		_.make('br', { last : label });
    		_.make(
    				type == 'textarea' ? 'textarea' : 'input',
    				{
    					'name' : name,
    					'type' : type,
    					last : label
    				}
    			);
    		_.make('br', { last : label });
    	}
    
    	function incomeRowMake(e) {
    		e = eventProcess(e);
    		var wrapper = _.make('div', { before : e.target });
    		makeLabelInput('incomeName[]', 'Name:', 'text', wrapper);
    		makeLabelInput('incomeAddress[]', 'Address:', 'text', wrapper);
    		makeLabelInput('income[]', 'Amount:', 'text', wrapper);
    		_.make('button', {
    			content : 'Remove',
    			type : 'button',
    			onclick = incomeRowRemove,
    			last : wrapper
    		});
    	}
    	
    	var incomeWrapper = _d.getElementById('incomeSources');
    	_.make('button', {
    		content : 'Add More', 
    		type : 'button',
    		onclick :incomeRowMake
    	});
    
    })();

  10. #10
    Master Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    5,104
    Thanks
    19
    Thanked 538 Times in 532 Posts
    Well since you can't have more than one field with the same name in teh same form successfully submit
    That would equally apply if you appended [], so that reasoning is invalid. And I am not aware that form submission makes any restriction on the form element names.
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  11. #11
    Regular Coder
    Join Date
    Apr 2012
    Posts
    125
    Thanks
    4
    Thanked 0 Times in 0 Posts
    DeathShadow, nice detailed explanations.

    Thanks usually the part I enjoy the most.

    I also like the idea you gave me about breaking it down into Sub headers like:

    Income Sources, then name, address and income. That's cool.

    It didn't work though when I clicked to Add More.

  12. #12
    Temporarily banned
    Join Date
    Feb 2016
    Location
    Keene, NH
    Posts
    1,667
    Thanks
    2
    Thanked 238 Times in 228 Posts
    Quote Originally Posted by simflex View Post
    It didn't work though when I clicked to Add More.
    1) I assume you're on IE... I just tested and it was working (though it shouldn't) everywhere but IE.

    2) I didn't test IE (BAD JASON!!!)

    3) typo on this line:

    Code:
    		if (type != 'textarea') input.type = 'type';
    Should have been:

    Code:
    		if (type != 'textarea') input.type = type;
    Doh, egg on face. But really, happens to the best of us.

    Uploaded new script:
    http://www.cutcodedown.com/for_other...ncomeSource.js

    So that demo should work now... (refresh a couple times to get the working script)

    But seriously, what are you doing using IE?

    Side note, if IE won't accept unrecognized types to types, wouldn't that break DOM creation of the new INPUT types from HTML 5 using anything but innerHTML? Which we really shouldn't be using?!? Have to play with that. Wonder if this is a case where Element.attribute = vs. Element.setAttribute the later would be better. I'm always fighting that since Element.setAttribute won't let you pass an anonymous function.
    Last edited by deathshadow; 02-17-2017 at 11:11 PM.

  13. #13
    Master Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    5,104
    Thanks
    19
    Thanked 538 Times in 532 Posts
    Side note, if IE won't accept unrecognized types to types, wouldn't that break DOM creation of the new INPUT types from HTML 5 using anything but innerHTML?
    any unrecognised input type (either by the HTML parser or the JS engine, depending on what you use to set the type) is reverted to the input's default type (text).
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer

  14. #14
    Temporarily banned
    Join Date
    Feb 2016
    Location
    Keene, NH
    Posts
    1,667
    Thanks
    2
    Thanked 238 Times in 228 Posts
    Quote Originally Posted by Dormilich View Post
    any unrecognised input type (either by the HTML parser or the JS engine, depending on what you use to set the type) is reverted to the input's default type (text).
    IT does in HTML, it does with setAttribute... but if you do:

    var newInput = document.createElement('input');
    newInput.type = 'someRandomType';

    or...
    newInput['type'] = 'someRandomType';

    IE will crash out with the error "Invalid argument."

    So you have to use:
    newInput.setAttribute('type', 'someRandomType');

    To avoid that error. I didn't know that until today -- strange corner case. I even just had to edit my new JS library to reflect that quirk as it hadn't reared its head in any of the demo code I've been writing, but it was just a matter of time.

    Laugh is that IE will also bomb if you try to pass an anonymous function to setAttribute, so I have to trap:

    if (typeof attributes[i] == 'function') newElement[i] = attributes[i];
    else newElement.setAttribute(i, attributes[i]);

    It's like... damnit IE! That's another one I just found out about the past couple days. ALWAYS something new to learn.

    Don't even get me STARTED about passing objects like "style" to a "simple" universal make function.

    I'd call it weird, or bizzaro-world rubbish, but that's just a normal day when it comes to IE... where comment nodes can trigger rendering errors.

    "Corner Case" -- programmers term for "everything IE does".

    Damn I miss Felgall, he actually knew this ****.
    Last edited by deathshadow; 02-17-2017 at 10:34 PM.

  15. #15
    Master Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    5,104
    Thanks
    19
    Thanked 538 Times in 532 Posts
    thank god I don't have to care for IE ...
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer


 

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •