jQuery form serialize-пустая строка



мой html:



 <script type="text/javascript">

$(function() {

$("#bt1").click(function() {

var f = $("#form1");
var formData = f.serialize();

alert(formData);
});

});
</script>

<div id="div1">
<form id="form1" action="/Home/Test1" method="post" name="down">
<div id="div2">
<input id="input1" type="text" value="2" />
</div>
</form>
</div>

<input type="submit" id="bt1" />


когда я запускаю событие click, formData пуста. Я использую jQuery 1.4.2.

446   4  

4 ответов:

вы должны дать input имя элемента. Например:

<form id="form1" action="/Home/Test1" method="post" name="down">
    <div id="div2">
        <input id="input1" type="text" value="2" name="foo"/>
    </div>    
</form>

даст вам в окне предупреждения foo=2.

.serialize() принимает имя и значение поля формы и создает строку типа name1=value1&name2=value2. Без имени он не может создать такую строку.

отметим, что name Это что-то другое, чем id. Ваша форма также не сработала бы, если бы вы использовали ее "нормальным" способом. каждое поле формы должно быть имя.

хотя это не относится к данному конкретному примеру, то же самое поведение происходит, если один или несколько входных данных формы отключен. Эти входные данные не будут отображаться в сериализованной строке. В моем случае все входные данные формы имели значения, но были отключены, в результате чего возвращалась пустая строка.

нет

также убедитесь, что на странице нет 2 элементов с одинаковым идентификатором.

Comments

    Ничего не найдено.