これは偶然に偶然見つけたもので、バグか意図した動作かどうかは疑問です。私は入力タイプ= "hidden"をチェックしましたが、これは不可能だと思いました。しかし、使用されているjQueryセレクターによっては、このフィールドが返されるか、返されません。入力タイプ= "hidden"とprop( "checked"、true)の不思議な振る舞い
HTML:
<form>
<div>Checkbox: <input class="test" type="checkbox" name="check" value="1" /></div>
<div>Hidden: <input class="test" type="hidden" name="check" value="1" /></div>
<div><input id="button" type="button" value="run test" /></div>
<div>Results:</div>
<div id="resultA"><strong>$('.test:checked')</strong><br /></div>
<div id="resultB"><strong>$('.test:checked[value=1]')</strong><br /></div>
<div id="resultC"><strong>$('.test:checked[value="1"]')</strong><br /></div>
</form>
のjQuery:JSFiddleとして上記の例
$(function() {
$('#button').click(function() {
$('.test').prop('checked', true);
$('.test:checked').each(function() {
$('#resultA').append($(this).attr('type') + ' - checked<br />');
});
$('.test:checked[value=1]').each(function() {
$('#resultB').append($(this).attr('type') + ' - checked<br />');
});
$('.test:checked[value="1"]').each(function() {
$('#resultC').append($(this).attr('type') + ' - checked<br />');
});
});
});
:https://jsfiddle.net/m5fatj8q/6/
ResultA:チェックボックスを返すのみ。
ResultB:チェックボックスとヒッデンフィールドの両方を返します。
ResultC:チェックボックスのみを返します。
マイquestingがある:
なぜresultBは隠しフィールドを返すのですか?これはバグか意図された動作ですか?