jQuery append ломает мою HTML-форму (с помощью кнопки submit)
Я пытаюсь создать форму с кнопкой submit через jQuery, используя append (). Итак, следующее:
out.append('<form name="input" action="/createuser" method="get">');
out.append('Username: <input type="text" name="user" />');
out.append('<input type="submit" value="Submit" />');
out.append('</form>');
Однако, нажав на submit, ничего не происходит!
Однако если я сделаю следующее:
var s =
'<form name="input" action="/createuser" method="get">' +
'Username: <input type="text" name="user" />' +
'<input type="submit" value="Submit" />' +
'</form>';
out.html(s);
Тогда кнопка Отправить работает нормально!
Я с удовольствием использую 2-й метод, но предпочел бы знать, в чем здесь проблема.
Спасибо
4 ответов:
С:
out.append('<form name="input" action="/createuser" method="get">');Элемент DOM формы автоматически закрывается браузером, поэтому все остальное добавляется как новые элементы DOM, но не внутри формы.
Вот альтернативный метод, который мне нравится для работы с деревом DOM:
out.append($('<form/>', { name: 'input', action: '/createuser', method: 'get', html: $('<span/>', { html: 'Username: ' }) .after( $('<input/>', { type: 'text', name: 'user' }) .after( $('<input/>', { type: 'submit', value: 'Submit' }) ) ) }));
Append работает немного иначе:
// create your element first var form = $('<form name="input" action="/createuser" method="get"></form>'); // add elements to it form.append('<form name="input" action="/createuser" method="get">'); form.append('Username: <input type="text" name="user" />'); form.append('<input type="submit" value="Submit" />'); // and only then append it to your html out.append(form);
Попробуйте вместо этого. Как сказалДарин Димитров , элементы автоматически закрываются при добавлении.
Метод сцепления делает вещи немного аккуратнее:
$('<form name="input" action="/createuser" method="get" />') .append('Username: <input type="text" name="user" />') .append('<input type="submit" value="Submit" />') .appendTo(out);
Этот пример отлично работает:
HTML
<body></body>Скрипт с JQuery
$(document).ready(function(){ var form=" "; form+='<form>'; form+='<form name="input" action="/createuser" method="get">'; form+='Username:<input type="text" name="user" /><br/>'; form+='<input type="submit" value="Submit" />'; form+='</form>'; $("body").append(form); });
Comments