我想在Javascript中为HTML复选框创建一个切换函数,如果复选框被选中/未选中,javascript检测到if语句并执行相应的操作(在这种情况下,添加/删除一个参数到网址,并用一组新的结果刷新页面)Javascript不识别初始复选框的值
现在,我只是试图通过检查框时检测到弹出警报的JavaScript切换功能/选中。
这里是JavaScript的:
<script type="text/javascript" language="javascript">
function filterToggle(attribName)
{
var elementII = document.getElementById(attribName);
if(elementII.checkedTag == "unchecked"){
elementII.checkedTag = "checked";
alert("checked");
}
else {
elementII.checkedTag = "unchecked";
alert("unchecked");
}
}
</script>
而这里的复选框被创建多次,其中,一个PHP foreach循环中:
$BODY .= sprintf("<input type=\"checkbox\" onclick=\"filterToggle('%s')\" name=\"%s\" value=\"%s\" id=\"%s\" checkedTag=\"unchecked\"/> %s ",
$attribName, $attribName, $attribClass, $attribName, $attribName, $attribName);
所以这里的想法是箱子应在加载页面未经检查(他们是),当我检查它们时,警报应该说“检查”,并且当我取消选中时,警报应该说“未检查”。这里的一切都很完美,除了这个事实,当我现在勾选这些框时,他们会说“未检查”,而当我取消选中时,他们会说“已检查”。所以看起来JavaScript正在改变checkedTag属性在复选框中的值,并作出相应的响应,,但它没有认识到复选框的值最初设置为“未选中”的事实,因此,而不是将其设置为未选中并在第一次点击时提醒“未检查”,因为它目前看起来正在做,它应该将其设置为“检查”并提醒“检查”。
这里有什么想法吗?我无法弄清楚为什么它没有认识到初始值 - 在checkedTag值附近尝试了双引号,单引号,没有引用...相同的结果。
以下是JSFiddle中的一些示例输出代码 - http://jsfiddle.net/intenex/s45JC/3/,其中3个复选框显示上述错误。
谢谢!
我开始使用jQuery和有一堆的问题 - http://stackoverflow.com/questions/7032748/jquery-function-not-executing-inside-php-foreach-loop 这个问题是后来的道路我需要jQuery是特定于每个复选框作为当每个复选框被选中时,该复选框的唯一参数将被插入到URL中以重新加载一个xml结果页面,我不确定如何在jQuery中做到最好。任何帮助将不胜感激那里,谢谢! – Intenex
看到我的编辑,你可以添加一个类来输入你想要的,而不是所有的,然后将'$('input')'改为'$('。myClass')'。你可以看到每个复选框都返回它的ID,因为我使用了'$(this)'。 –