Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置带有变量名、id、值的复选框链接_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何设置带有变量名、id、值的复选框链接

Javascript 如何设置带有变量名、id、值的复选框链接,javascript,jquery,html,Javascript,Jquery,Html,我有一个长长的复选框列表,每个复选框旁边都有一个链接。比如: <form name="checkboxlist" action="..." > <input type="checkbox" id="1" name="pageCB" value="1"/> <a id="1" href="#" onclick="sub(id)>click here</a> <input type="checkbox" id="2" na

我有一个长长的复选框列表,每个复选框旁边都有一个链接。比如:

<form name="checkboxlist" action="..." >
    <input type="checkbox" id="1" name="pageCB" value="1"/>
    <a id="1" href="#" onclick="sub(id)>click here</a>
    <input type="checkbox" id="2" name="pageCB" value="2"/>
    <a id="2" href="#" onclick="sub(id)>click here</a>
    ...
    ...
    <input type="submit" />
</form>

...
...
我目前正在尝试使用:

<script>
    function sub(id){
        $("input:checkbox[value=id]").attr("checked", true);
        document.checkboxlist.submit(); 
    }
</script>

职能分包(id){
$(“输入:复选框[value=id]”)。attr(“选中”,true);
document.checkboxlist.submit();
}

但这显然不读取变量id,我真的希望避免对每个id进行if语句,因为它们有几百个。有什么方法可以做到这一点吗?

编辑:我发现您也在使用重复的ID。这是无效的,在按ID选择时将无法正常工作


数字标识在HTML4中无效

无论如何,请更改以下内容:

$("input:checkbox[value=id]")
为此:

$("input:checkbox[value='" + id + "']")
这将
id
的值连接到选择器字符串中,我还在属性选择器值周围添加了引号,因为文档需要它们

并将内联处理程序更改为:

<a id="2" href="#" onclick="sub(this.id)>click here</a>


…因为
是对所单击元素的引用,所以
此.id
是对其id属性的引用。

您不应该使用链接,应该使用
标记

这就是它的用途

<input type="checkbox" name="mybox" id="mybox">
<label for="mybox">Click this box</label>

单击此框

这适用于所有表单字段,比构建JS来完成已经存在的任务要好得多。

如果我理解正确,您希望通过单击相关元素来支持选择复选框,并在单击时提交表单。我建议a)使用
元素代替
,因为它们可以通过id与输入关联;b)不要使用数字、重复的
id
属性

<form name="checkboxlist" action="#">
    <input type="checkbox" id="a" name="pageCB" value="1"/>
    <label for="a">Click here</label>
    <input type="checkbox" id="b" name="pageCB" value="2"/>
    <label for="b">Click here</label>
</form>    

<script>
    $(document).ready(function() {
        $('input:checkbox').change(function(){
            $(this).parent('form').submit();
        });
    });
</script>

点击这里
点击这里
$(文档).ready(函数(){
$('input:checkbox').change(function(){
$(this.parent('form').submit();
});
});

您可以修改html吗?在一个页面上有多个相同的id是无效的。我建议使用onlick处理程序并将其添加到checkbox如果您知道id,那么它将比$(“#”+id).attr(“checked”,true)更简单;同意,但这无助于触发submit on复选框changeAhh,但您可以轻松地将一个事件附加到表单中的所有标签上,但这并不是一个很好的用户体验。点击自动提交表单似乎有点奇怪。哦,威尔。。。欧普知道他想要什么,我想:)是的,我是个白痴。我曾尝试将它连接起来,但如果属性周围没有引号,它就无法工作。