所以这很好
的HTML
<p></p>
<select id="single">
<option>Single</option>
<option>Single2</option>
</select>
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<div>
<span class="label">Hobbies</span>
<input type="checkbox" name="hobby" id="hel" value="hel">
<label for="hel">hel</label>
<input type="checkbox" name="hobby" id="pickle" value="pickle">
<label for="pickle">Pickle eating</label>
<input type="checkbox" name="hobby" id="walnut" value="walnut">
<label for="walnut">Making walnut butter</label>
</div>
function displayVals() {
var singleValues = $( "#single" ).val();
var multipleValues = $( "#multiple" ).val() || [];
$( "p" ).html( "<b>Single:</b> " + singleValues +
" <b>Multiple:</b> " + multipleValues.join( ", " ) );}
$( "select" ).change( displayVals );
displayVals();
但是当我更改JQuery Selector来输入时,它重现了multiValues.join()不是一个函数!
function displayVals() {
var singleValues = $( "#single" ).val();
var multipleValues = $( "input[name='hobby']:checked" ).val() || [];
$( "p" ).html( "<b>Single:</b> " + singleValues +
" <b>Multiple:</b> " + multipleValues.join( ", " ) );
}
$( "input" ).change( displayVals );
displayVals();
那我在做什么错呢?
对于输入元素,返回值将是字符串,因此对于复选框数组,您可以遍历选中的输入,然后使用.map()创建一个数组,如下所示
function displayVals() {
var singleValues = $("#single").val();
var multipleValues = $("#multiple").val() || [];
var hobbies = $('input[name="hobby"]:checked').map(function () {
return this.value;
}).get();
$("p").html("<b>Single:</b> " + singleValues +
" <b>Multiple:</b> " + multipleValues.join(", ") +
" <b>Hobies:</b> " + hobbies.join(", "));
}
$("select, input").change(displayVals);
displayVals();
演示:小提琴
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句