I have a form that I want to clone and add up to 5 duplicates with slight changes. The changes are:
Add a second question and another set of related radio buttons for only the duplicates. Change the title in the Header to increment by 1 ex. Header 1, Header 2...
I also would like to make the form elements "id" and "names" unique. Also, continue to use the add and remove button at the bottom.
I have included my existing code.
NOTE: for a visual, I mocked up the the original form and 1 copy of the fields in the html, not to be used.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
I'm writing a dynamic form that allows users to add fields. Thesefields are contained in a table.I have this function to clone the rows (my table has an ID of
In my form, the user can check only one option: either * ship to default address * ship to new address
Both options are radio buttons. They both have the same instance name, but different ids. That way the user is forced to choose either one or the other.
My problem is that since both radio buttons have the same instance name, then I cannot get the value of the instance with JavaScript.
I am using jquery with the cookie plugin and I have multiple image buttons that can hide/show multiple elements. My question is how can I add a cookie to this code to remember whether each separate element is opened or closed?
The code, $(document).ready(function() { // choose text for the show/hide link - can contain HTML (e.g. an image) var showText='<div class="expanddown"></div>'; var hideText='<div class="expandup"></div>'; // initialise the visibility check var is_visible = false; // append show/hide links to the element directly preceding the element with a class of "toggle" $('.toggle').prev().append('<a href="#" class="togglelink">'+hideText+'</a>'); // capture clicks on the toggle links $('a.togglelink').click(function() { // switch visibility is_visible = !is_visible; // change the link depending on whether the element is shown or hidden $(this).html( (!is_visible) ? hideText : showText); // toggle the display - uncomment the next line for a basic "accordion" style //$('.toggle').hide();$('a.toggleLink').html(showText); $(this).parent().next('.toggle').slideToggle('fast'); // return false so any link destination is not followed return false; }); }); HTML, <a class="togglelink" href="#"></a> <div class="toggle"> Content </div>
Does anyone know of any generic code to clone an object (which only contains properties), which copies by value, not just reference?
It seems as though there should be some sort of prefab recursive function that could work for any old object, so I didn't want to re-invent the wheel Code:
I'm using a fieldset with a set of form elements as a template, but when I clone the node and try to change the contained element names + ids, they are being set at some point, because I can 'alert' the new names/ids out, but they are not being changed in time to be written to the DOM.
The code is here. Take '?debug' off the address to ditch the alerts.
It's probably a dumb mistake I've made along the way, but I can't see the wood for the trees Any pointers would be great.
UPDATE: The function in question is 'addDate'. I have a form generated from PHP and I want to clone a group of elements and rename each from 'startTime1[h]' to 'startTime2[h]' etc. but the new elements are keeping the same name 'startTime1[h]'.
I have put together a small script and need to clone all the object boxes so that I can copy from selelct box 2 to textarea 1 after adding new row. I am also looking to copy from autocomplete to the same textarea and have the text fall into the text box on a new line.
element = document.getElementById(IdOfElement) element = element.cloneNode(true) new_element = document.getElementById(IdOfElement).appendChild(e lement)
Anybody knows how to set id for the new element ? I mean the id which I coud use in CSS stylesheet for setting css properties of new element.
I'm new to jquery so I'm having a bit of an issue cloning a table row and having all of the id's change correctly. I'm able to clone a row with no problem and change the id of the tr after clicking a button by doing this:
var newId = document.getElementById("id").value; // This works because I am using a hidden input for my id $(id).clone().attr("id", "row" + newId).insertAfter("#div_id");// This changes the id of row The problem I am having is when I want to change the other id's inside of the tr. After insertAfter() I'll do the following: .find("span").text("Item" + newId).find("#Item_A" + oldId).attr("id", "Item_A" + newId);
The first .find will change the text with no problem, its when I get to Item_A that it will keep the old id instead of incrementing to the new id. Yes, I am declaring oldId as a variable and assigning it as newId - 1. Any ideas on how to make sure all id's are incremented properly?
So what I need to do is to simply clone the row, substitute new values from an array and insert it after the last existing row (if array's size more then 1). But this doesn't work! Where is an error?
Following is the code which will clone a set of div with their events(onclick) which is working fine for FF but in case of IE it is not firing events associated with each div.
I need to .clone() sections in a dynamic form, but get problems withthe radio buttons in IE.To work as a group, the radio buttons need to have the same name (persection). This is accomplished by changing the name attribute aftercloning a hidden section in a <div>. Easy with jQuery! - and it workswith FF, Opera, Chrome, Safari...IE however, does not allow changing of name attribute dynamically, andtreats all radio buttons across the sections as part of the samegroup!!Does anyone know of a workaround, preferably using jQUery, andavoiding browser sniffing and low-level DOM programming?
I am using the little tooltip script below. Normally, works fine, except when I clone an element which has a tooltip in it and append it to another element using something like: $("#table tbody").append($("#row").clone(true));.
Now, immediately after cloning it, I use jQuery to alert the title attribute, and it is in the new element. Then, when I view it using firefox, the title is gone, and obviously the tooltip cannot work.
/** Vertigo Tip by www.vertigo-project.com Requires jQuery */
I am doing a form for my site and would like to enable and disable a radio button set depending on whether one of the choices on an outer radio button set is checked. How can I refer to all the inputs of the inner radio button set (they all share a common name) with javascript. I tried document.getElementsByNames('thename') but it doesn't work. I know this is because this method returns an array which you must then refer to by a specific index number, unless there is another way. I would like to refer to all of them at once and then set their disabled status to false.
I have a dynamically generated page (PHP), which contains an Explorer like view of items. I would like to hide multiple <tr>'s by name, but I can't figure out how thats done.
I have this code to hide one element by id
if (document.getElementById(id)){ document.getElementById(id).style.position = 'relative' document.getElementById(id).style.display = 'none' }
Anyone has a cod sample for looping through multiple elements and hide them?
The short of it is that I am trying to change the background color of all elements with a particular class name. I know there is no getElementsByClassName (wouldn't it be nice if there were?), but is there a simple way to do it? Alternatively, is there a way to apply changes to multiple id's?
I am currently using this function to clone rows in my table when a user clicks 'add row'
The problem is, obviously, cloning the row also clones any of the data that the user may have already entered. I need to just clone the elements of the row, not the user entered data. Is there a way to remove all data from a row before it is cloned?
I have written a function to make visible elements with a certain id. however i intended it to be used to make visible multiple elements but it only appears to switch on the first element it comes to with that id. after that it appears to stop. i was wondering how i can adapt this function to make visible multiple elements, will i need a different way of referencing or can it be done through id?
I have a rather old script that uses XMLHttpRequest to retrieve some html and pops it into a div using innerHTML. I'd like to switch over to using append child since not only is it standardized, but it'll save me bandwidth in the long run. Code:
I've selected multiple tables and tried to use each for applying cornering to each table. Inside the callback function, I try to find the first/last table cells to apply cornering for each corner. However, when there are multiple tables it looks at _all_ the tr elements for the first/last rows. See example code:
// Add cornering to tables $('table.corner-me').addClass('ui-corner-all').each(function(){ var $table = $(this); $table.find('tr:first :first-child').addClass('ui-corner-tl');
Can someone explain to me the best way to loop through the geocode and marker (google maps) part of this code for all of the elements with the "address" class using jQuery (or javascript if need be). I tried wrapping the contents of the codeAddress function in $(".address").each(function () {... and replacing the getElementById with a jquery selector, but I still seem to be lost.
But when there are multiple classes, it only deletes the first element in its query. As a successful test, I appended some CSS to ensure the query selected all classes and added a border to each element. So why does remove() not work? Is it a bug or is my query missing something?