jQuery的API说明如何serialize()可以在窗体上具有以下使用:序列化似乎覆盖多个选择值和复选框
<form>
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>
<br>
<select name="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<br>
<input type="checkbox" name="check" value="check1" id="ch1">
<label for="ch1">check1</label>
<input type="checkbox" name="check" value="check2" checked="checked" id="ch2">
<label for="ch2">check2</label>
<br>
<input type="radio" name="radio" value="radio1" checked="checked" id="r1">
<label for="r1">radio1</label>
<input type="radio" name="radio" value="radio2" id="r2">
<label for="r2">radio2</label>
</form>
<script>
function showValues() {
var str = $("form").serialize();
$("#results").text(str);
}
$("input[type='checkbox'], input[type='radio']").on("click", showValues);
$("select").on("change", showValues);
showValues();
</script>
将会产生类似
single=Single&multiple=Multiple&multiple=Multiple2&multiple=Multiple3&check=check2&radio=radio1
似乎multiple
被覆盖两次。那么我该如何访问多个值?
或者还有比序列化更现代的方法吗?
Are you sure Multiple2 is listed?看看他们的例子,只有“选定”的值应该被序列化。 – Snekse 2014-10-07 21:26:42
你如何“访问”这些值?用JS或在服务器上? – Snekse 2014-10-07 21:27:59
@Snekse类似于'<?php if(isset($ _ GET [“multiple”])){$ multiple = $ _GET [“multiple”];}' – 1252748 2014-10-07 22:12:59