我一直在查看很多关于如何完成此操作的示例,但无法使其正常工作。我只想在我的 javascript 中放置一个简单的 if 语句,当我添加 if 时,它会中断吗?我正在接受测试以在选中时报告 true,在未选中时报告 false,所以我错过了什么? - 新手用户,如果这是一种复杂的方式,我深表歉意。
不工作:
<script>
$('input[name="1"]').click(function() {
var test = $(this).prop('checked'); //{
if(test == "true")
{
var alert_id = $(this).val();
var key = $('#key').val();
$.ajax({
type: "POST",
url: "functions/database_write.php",
data: "id1="+alert_id+"&key="+key+"&test="+test,
success: function(resp){
$( ".pop-div" ).slideDown(100,"linear");
setTimeout(function(){
$( ".pop-div" ).slideUp(100,"linear");
}, 1000);
//alert(resp);
},
error: function(e){
alert('Error: ' + e);
}
}
})
});
</script>
但是可以工作,但是当函数写成这样时每次点击:
<script>
$('input[name="1"]').click(function() {
var test = $(this).prop('checked'); //{
//if(test == "true")
//{
var alert_id = $(this).val();
var key = $('#key').val();
$.ajax({
type: "POST",
url: "functions/database_write.php",
data: "id1="+alert_id+"&key="+key+"&test="+test,
success: function(resp){
$( ".pop-div" ).slideDown(100,"linear");
setTimeout(function(){
$( ".pop-div" ).slideUp(100,"linear");
}, 1000);
//alert(resp);
},
error: function(e){
alert('Error: ' + e);
}
//}
})
});
</script>
最佳答案
DEMO:
将 if(test == "true")
更改为 if(test)
或 if(test === true)
或if(this.checked)
HTML:
<label for=input>Click Me</label>
<input id=input type=checkbox name=1 />
脚本:
$('input[name="1"]').click( function () {
var test = $(this).prop('checked');
if(test){
alert("checkbox checked");
var alert_id = $(this).val();
var key = $('#key').val();
$.ajax({
type: "POST",
url: "functions/database_write.php",
data: "id1="+alert_id+"&key="+key+"&test="+test,
success: function(resp){
$( ".pop-div" ).slideDown(100,"linear");
setTimeout(function(){
$( ".pop-div" ).slideUp(100,"linear");
}, 1000);
},
error: function(e){
alert('Error: ' + e);
}
});
}
});
注意:
如果其中一个操作数是 bool 值,则 bool 操作数如果为真则转换为 1,如果为假则转换为 +0。
你可以添加console.log(test);
来查看test的值。
您所做的是将 true == "true"
boolean
与 string
进行比较
关于javascript - 复选框 - 仅在选中 jquery 时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25691362/