我一直在研究很多关于如何实现这一目标的例子,但却无法让它发挥作用。我只想在我的javascript中添加一个简单的if语句,当我添加if时,它会中断吗?我正在接受测试,在检查时报告为真,如果未经检查则报告为假,那么我缺少什么? - 新手用户,所以如果这是一个令人费解的方式,我道歉。
不工作:
<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>
答案 0 :(得分:2)
将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 />
SCRIPT:
$('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);
}
});
}
});
注意:
If one of the operands is Boolean, the Boolean operand is converted to 1 if it is true and +0 if it is false.
您可以添加console.log(test);
以查看测试值。
您正在做的是将true == "true"
boolean
与string
进行比较
答案 1 :(得分:1)
关键问题在于你使用true
作为字符串,这就是为什么它不起作用的原因:
所以,将它用作布尔值:
if(test == true) // not "true"
你也可以使用如下:
if(test) // it says if test is true
OR,
if(test == 1) // 1 for true 0 for false
答案 2 :(得分:0)
尝试做:
<script>
$('input[name="1"]').click(function() {
//var test = $(this).prop('checked'); //{
if(jQuery(this).is(":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);
//alert(resp);
},
error: function(e){
alert('Error: ' + e);
}
}
})
});
</script>
答案 3 :(得分:0)
试试这样:
<script>
$('input[name="1"]').click(function() {
var test = $(this).prop('checked'); //{
console.log(test);// to see whats is in test
if(test)
{
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>