Вы можете построить форму такой, какая вы есть, но пройти через объект формы с помощью контекста jQuery
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
<script type="text/javascript">
$(function() {
$('#go').click(function() {
var tester = $('<div></div>').html('It's a "test"');
var form = $('<form action="/admin/controllers/edit_cat.php" method="post" >' +
'<input type="hidden" name="id_cat" />' +
'<input type="text" name="name_cat" />' +
'<input type="submit" value="save" />' +
'</form>');
$(':hidden:first', form).attr('value', tester.text());
$(':text:first', form).attr('value', "Some attribute");
$('#output').append(form);
});
});
</script>
<input id="go" type="submit" value="click"/>
<div id="output">
</div>
То, что я здесь сделал, заключает в себе ввод html формы в объект jQuery как * 1004.*.Затем вы можете запрашивать элементы в контексте этого объекта с помощью мало используемой формы jQuery:
jQuery (селектор, [контекст])
селектор: строка, содержащаявыражение селектора
context: элемент DOM, Document или jQuery для использования в качестве контекста
edit: я создал объект tester
и установил содержимое в качестве примера html.Затем, когда я устанавливаю значение в скрытом вводе, я вызываю .text()
, чтобы получить не-HTML представление.Значение такое же, как и ожидалось.
<form action="/admin/controllers/edit_cat.php" method="post">
<input type="hidden" name="id_cat" value="It's a "test"">
<input type="text" name="name_cat" value="Some attribute">
<input type="submit" value="save">
</form>
Однако вам придется декодировать этот html-код на серверной части.Это, вероятно, лучшее, что вы могли бы сделать, потому что XML не позволяет «экранировать» кавычки, такие как "\"this\""
.Спецификация требует экранирования кавычек, таких как "this"
.