我正在尝试使用.ajax传递一个布尔值(选中/未选中)值,但我无法使其工作。我已经阅读了很多关于如何使用.is(':checked')
和.prop('checked')
来获取复选框的价值,但我似乎无法做任何事情。
这是我的HTML:
<input type="checkbox" id="typeOfSearch" value="TRUE">
<label for="typeOfSearch">Exact Search?</label>
这是我的JavaScript
$.ajax({
url: 'partsTable.php',
type: 'post',
dataType: 'html',
data: {
major: $('select#dropdownMajor').val(),
minor: $('select#dropdownMinor').val(),
typeOfSearch: $('checkbox#typeOfSearch').prop('checked')
},
success: function(data) {
var result = data
$('#fromPartsTable').html(result);
}
});
我可以使脚本适用于select
框,并且在我添加复选框后这些框继续工作,但是没有传递复选框的值。
我感兴趣的是传递'已检查'与'未选中'。
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
您无法选择checkbox
,因为不存在此类标记。尝试input
或甚至给它一个唯一的id
,而不关心标签,例如$('#typeOfSearch')
:
function send() {
$cb = $('input#typeOfSearch');
console.log($cb.prop('checked'));
$.ajax({
url: 'partsTable.php',
type: 'post',
dataType: 'html',
data: {
major: $('select#dropdownMajor').val(),
minor: $('select#dropdownMinor').val(),
typeOfSearch: $cb.prop('checked')
},
success: function(data) {
var result = data
$('#fromPartsTable').html(result);
}
});
}
$('#submit').click(function() {
send();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="typeOfSearch" value="TRUE">
<label for="typeOfSearch">Exact Search?</label>
<button id="submit">Send</button>
答案 1 :(得分:2)
您正在使用无效选择器。请改用input
。
您的HTML有input
元素,
<input type="checkbox" id="typeOfSearch" value="TRUE">
<label for="typeOfSearch">Exact Search?</label>
function send() {
$.ajax({
url: 'partsTable.php',
type: 'post',
dataType: 'html',
data: {
major: $('select#dropdownMajor').val(),
minor: $('select#dropdownMinor').val(),
typeOfSearch: $('input#typeOfSearch').prop('checked')
},
success: function(data) {
var result = data
$('#fromPartsTable').html(result);
}
});
}
$('#submit').click(function() {
send();
});
答案 2 :(得分:1)
您的选择器错误
$('checkbox#typeOfSearch')
您正在寻找:
<checkbox id="typeOfSearch">
如果您只是按ID选择,则可以使用
$('#typeOfSearch')
答案 3 :(得分:1)
如果选中该复选框,以下是您可以看到的一些方法。如果选中该复选框,则值为true,否则为false。
if ($('#typeOfSearch:checked').length > 0) {
/* Do something */
}
if($('#typeOfSearch').prop('checked') == true) {
/* Do something */
}
if ($('#typeOfSearch').filter(':checked')) {
/* Do something */
}
希望这有帮助。
答案 4 :(得分:1)
希望这会有所帮助:)
$(document).ready(function() {
//set initial state.
$('#typeOfSearch').change(function() {
$('#typeSelected').html(($(this).is(':checked') ? "TRUE" : "FALSE"));
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="typeOfSearch" /> This Type
<br>
Type Selected:
<span id="typeSelected">FALSE</span>
&#13;
答案 5 :(得分:0)
在询问Stack Overflow问题时请更好地搜索。这是谷歌在#34; jquery获得检查或未选中的最佳打击&#34;:
https://stackoverflow.com/a/27265333/5129424
您的选择器只会将事件附加到在开头选择的元素。您需要在更改值时确定检查未选中状态:
$("#countries input:checkbox").change(function() {
var ischecked= $(this).is(':checked');
if(!ischecked)
alert('uncheckd ' + $(this).val());
});