我正在向用户显示一个表单,几乎没有复选框。其中一些将被预选,一些将不会。
如下所示:
<input type="checkbox" name="box" value="9"> nine
<input type="checkbox" name="box" value="10"> ten
<input type="checkbox" name="box" value="11"> eleven
<input type="checkbox" name="box" value="12" checked> twelve
请注意,在最后一个复选框中,使用scriplet添加了checked
关键字。
现在,即使我实际取消选中twelve
,我的javascript代码也不会理解不再选中该复选框。
更新 我之前粘贴了错误的链接。这是更新的jsfiddle链接:http://jsfiddle.net/JLSUK/20/
我正在尝试完成的操作仅在用户选择了复选框twelve
时提醒用户。但是,即使未选中该复选框,我也会收到一条警告,表明它已被选中。我认为这是因为我在实际的HTML内容中有checked
,但是,自第一次加载页面以来,我无法删除它,我必须向用户显示他们已选中此特定复选框。
这可以用jQuery吗?
答案 0 :(得分:1)
您正在向阵列添加元素,但您永远不会删除它们。因此,每次用户点击“更新”时,您只需填充阵列即可。在某些时候,您需要清除数组,或从中删除以前的选择(取决于您的确切逻辑)。
答案 1 :(得分:1)
在你的jsfiddle中你有:
$('#update').click(function () {
而您的input
是:
<input type="submit" id="something" value="update" />
尝试将您的jquery更改为:
$('#something').click(function () {
jQuery中的#*
选择器指的是id
,而不是value
。
你也有:
if (jQuery.inArray('8', selected) >= 0 && jQuery.inArray('11', selected) >=0)
您的所有复选框都没有8
的值,因此永远不会为“true”。
同时将数组声明为新数组:
var selected = new Array();
选择“八”和“十一”,您的弹出窗口将出现
编辑:看到问题编辑后,您需要添加以下行以清除以前的数组项:
var selected = [];