Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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_Xml_Xslt_Checkbox - Fatal编程技术网

Javascript 如何为每个复选框分配唯一的id?

Javascript 如何为每个复选框分配唯一的id?,javascript,xml,xslt,checkbox,Javascript,Xml,Xslt,Checkbox,我正在检查复选框是否已选中。然而,我面临的问题是,我使用了一个循环(xsl:for each)根据XML自动生成复选框。因为我是自动生成它们的,所以我不能为每个复选框设置不同的ID,这会阻止我更新特定复选框的属性以指示它已选中。另外,每当我选中一个复选框(无论是第一个还是最后一个),第一个复选框都会被更新。有人能给我提个建议吗?或者至少把我带到正确的方向?提前谢谢 以下是我的XSLT代码: <xsl:if test="$type='MultiList'"> &

我正在检查复选框是否已选中。然而,我面临的问题是,我使用了一个循环(xsl:for each)根据XML自动生成复选框。因为我是自动生成它们的,所以我不能为每个复选框设置不同的ID,这会阻止我更新特定复选框的属性以指示它已选中。另外,每当我选中一个复选框(无论是第一个还是最后一个),第一个复选框都会被更新。有人能给我提个建议吗?或者至少把我带到正确的方向?提前谢谢

以下是我的XSLT代码:

  <xsl:if test="$type='MultiList'">
          <xsl:for-each select="./options/item">
            <xsl:element name="input">
              <xsl:attribute name="type">checkbox</xsl:attribute>
              <xsl:attribute name="id">hey</xsl:attribute>
              <xsl:attribute name="onchange">hii()</xsl:attribute>
              <xsl:attribute name="score">
                <xsl:value-of select="@score"/>
              </xsl:attribute>
              <xsl:attribute name="value">
                <xsl:value-of select="item"/>
              </xsl:attribute>

            </xsl:element>
            <label>
              <xsl:value-of select="."/>
            </label>
          </xsl:for-each>
        </xsl:if>

复选框
嘿
hii()
下面是javascript:

<script>


    function hii(){

    var a = document.getElementById('hey');
    a.setAttribute("score","1");
    }
  </script>

函数hii(){
var a=document.getElementById('hey');
a、 setAttribute(“分数”、“1”);
}

您不需要每个复选框都有id

更改函数定义以接受参数:

function hii(checkbox) {
    checkbox.setAttribute("score", (checkbox.checked ? 1 : 0));
}
然后将此
传递给
hii()



哇,直到现在才知道你能做到!可能是因为我刚开始自学这门语言,这就是为什么!谢谢!呃,无线按钮呢?我试着在radiobutton上复制这个方法,但是现在这个值仍然是1,即使它没有被选中。你是怎么解决的?我不太清楚你到底在说什么。。。也许这值得一个单独的问题:)
<xsl:attribute name="onchange">hii(this)</xsl:attribute>