Gary
Gary

Reputation: 395

Creating an ID for a Form Variable (or Changing it) Using Javascript or JQuery

I am receiving an XML data form result and using the Strophe library to convert it into html.

This gives me a chunk of HTML (form) as a variable, which I can then append to a page:

var iqHtml = iqForm.toHTML();
$("#form-result-div").append(iqHtml);

The issue is that the form which it attaches has no id, action, or anything to identify it:

<form data-type="result">
...

I have two possibilities here.


Option 1. (preferred method)

Is it possible to change the variable iqHtml, which is just raw HTML, and an ID to it? Ideally this would be done before it is appended to the page.

I've tried multiple ways to find the form tag and add the attribute using .find() and .attr() but with no success.


Option 2. (less preferable)

I can edit the library to add a random ID (say id="some-id") which I will then need to EDIT rather than creating new.

This editing will have the questions as Option 1 - how do I search the variable and then change the form's ID.


Thank you.

Kind Regards,

Gary Shergill

Upvotes: 0

Views: 72

Answers (2)

towr
towr

Reputation: 4167

You could assign an id before appending it

$(iqHtml).attr('id', 'someid').appendTo("#form-result-div");

Edited: id needs to be in ''

Upvotes: 1

emerson.marini
emerson.marini

Reputation: 9348

This should work:

var iqHtml = "<form><input type='text' /></form>";

$("#form-result-div").append(iqHtml).find("form").attr("id", "myForm");

Demo: http://jsfiddle.net/AA8Cf/

You can also play with one of the child selectors to pick up a specific one, if there is more than one form.

http://api.jquery.com/category/selectors/child-filter-selectors/

Upvotes: 1

Related Questions