我将如何比较这两个变量?
这是我的代码:
if ($('#<%= CheckBox1.ClientID %>').val() != $('#<%= CheckBox1.ClientID %>').is(':checked')) {
/* ... */
}
总是返回true。
如何比较这两个值?我正在尝试捕获复选框的最后状态,并查看它是否与当前状态相同。谢谢!
我将如何比较这两个变量?
这是我的代码:
if ($('#<%= CheckBox1.ClientID %>').val() != $('#<%= CheckBox1.ClientID %>').is(':checked')) {
/* ... */
}
总是返回true。
如何比较这两个值?我正在尝试捕获复选框的最后状态,并查看它是否与当前状态相同。谢谢!
您对复选框和 .val() 函数的理解存在根本性错误。
<input id="test" type="checkbox" value="ValueToReturnIfChecked" name="WhateverToUseInYourPost" />
$("#test").val() //will return "ValueToReturnIfChecked.
$("#test").is(":checked") //will return true or false.
$("#test").prop("checked") //will return true or false.
$("#test").attr("checked") //will return checked or empty string
编辑:附加说明
我想我应该回答你的实际问题。答案是您不能将 *.val() 与 *.is(":checked") 进行比较,它们根本不同。如果您想跟踪过去的状态,您可以随时执行以下操作:
$("#test").on("click", function(){
$this = $(this);
if($this.data("priorState") == $this.is(":checked")){
//Do something
}else{
//The following will inject the state into the checkbox so you can track it.
$this.data("priorState", $this.is(":checked"))
}
});