Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 通过单击标签更改输入属性_Javascript_Jquery_Html - Fatal编程技术网

Javascript 通过单击标签更改输入属性

Javascript 通过单击标签更改输入属性,javascript,jquery,html,Javascript,Jquery,Html,我需要的是: 如果单击标签,我想在输入中添加一个签入标签 当我尝试它的时候,我得到了两个带有true的警报。这是不正确的,在firebug中,输入字段没有更改 对于一个测试,我想输出filterguid,但是警报是空的,并且还有两个警报框 HTML标记: <li> <label> <input type="checkbox" filterguid="895f7bc2-d609-4b09-97f9-c09f9fc90d1b"> Weiblich <

我需要的是:

如果单击标签,我想在输入中添加一个签入标签

当我尝试它的时候,我得到了两个带有true的警报。这是不正确的,在firebug中,输入字段没有更改

对于一个测试,我想输出filterguid,但是警报是空的,并且还有两个警报框

HTML标记:

<li>
 <label>
  <input type="checkbox" filterguid="895f7bc2-d609-4b09-97f9-c09f9fc90d1b"> Weiblich
  </label>
</li>
我的jQuery代码正确吗


谢谢。

HTML-除了在输入上添加一个id以方便jquery定位外,没有任何更改

<li>
    <label>
        <input type="checkbox" id="checkbox" filterguid="895f7bc2-d609-4b09-97f9-c09f9fc90d1b"> Weiblich
    </label>
</li>
属性标签 与标签元素位于同一文档中的可标签表单相关元素的ID。文档中ID与for属性的值匹配的第一个此类元素是此标签元素的标签控件

此外,还应该使用数据属性而不是属性。属性不受HTM5支持

样品 $chkTest.onclick,函数{ console.log$this.datafilterguid } 威布里奇
您不需要任何JS,这是默认的HTML行为。我对你想要达到的目标感到困惑。为什么标签还没有做到这一点?当您将标签正确地附加到复选框时,标签就是这样工作的。通过查看您的代码,应该可以做到这一点。现在,如果您不希望他们能够通过单击标签取消选中它,这看起来比“是”更奇怪,那么您需要一些代码,并且需要一些复选框逻辑。$this.children.prop'checked',true;这不需要存在,filterguid是一个属性而不是一个属性。@llamerr在这种情况下不是,因为输入是标签的子项。@llamerr:不,如果在;for属性只是将and与关联起来,这通常是通过具有的内部来实现的。如何解释您更改了什么以及更改原因,然后解释多次发生警报的原因。谢谢。使用这些代码,我可以检查输入字段是否被选中,并更改标签的样式。@cgee:正如您所知,.prop方法被.attr替换,因为只有某些属性会自动映射到对象属性。自定义属性不支持。如果您使用了数据属性,则可以在现代浏览器中使用this.dataset.filterguid来获取数据。发生多个警报的原因是,当标签触发其相关输入控件上的行为时,它会导致单击事件发生,因此出现了用户的实际单击,然后是附加标签引发的单击。@Downvoter,请查找更新的答案。希望这能增加我们所缺少的。如果缺少什么,请大家发表评论。这里的每个人都是来学习的,我想填补我理解上的空白。
<li>
    <label>
        <input type="checkbox" id="checkbox" filterguid="895f7bc2-d609-4b09-97f9-c09f9fc90d1b"> Weiblich
    </label>
</li>
$('#checkbox').change(function() {
    console.log($(this).attr('filterguid'))
    console.log(this.checked)
});