使用jquery标记一个复选框

时间:2011-04-21 07:11:41

标签: jquery asp.net

我不熟悉jquery。

我要做的是,拖放一个文本,该文本将显示为一个复选框,复选框应该具有与删除文本相同的ID和工具提示。为此,我使用了以下代码。但它不起作用。请帮助

 <script type="text/javascript">

  $(init);

  function init() {




  function addColumn(column) 
  {
    var iHtml;


    //Labeling and Tool Tip the Checkbox



   iHtml = "<span title='ToolTipText'>"+
   "<input id='<%" + column + ".ClientID%>' type='checkbox' name='<%" + column + ".ClientID %>' />"+
    "<label for='<%" + column + ".ClientID%>'>MyCheckBox</label></span>";

    return iHtml
  }

2 个答案:

答案 0 :(得分:2)

该代码存在很多问题。首先,虽然HTML5 allows只是id中除空格之外的任何字符,早期版本的HTML were more restrictiveCSS still is,所以你真的不想使用id开始#。 (在这种情况下,您可以完全避免使用id,除非您需要id代码而未引用代码。)您的input类型有拼写错误(“checbox”)和所以它不是一个复选框,它默认为“text”。

这是我对你想要的最好的猜测:

iHtml = "<label title='ToolTipText'>" +
        "<input id='x<%” + column + ".ClientID%>' type='checkbox' name='x<%” +column+".ClientID%>'/>" +
        " MyCheckBox</label>";

...但我完全不确定你的ASP.Net方面是否正确(我已经离开了它),看起来很狡猾,但我没有做很多ASP。净。 (尤其是花哨的字符。)

我上面做了什么:

  • idnamex开头,摆脱#。请参阅上面的链接了解原因。 (我离开了id,因为我不确定你不需要它;如果你不需要它,如果name足够,你可以删除它。)
  • input 放在 label内。当你这样做时,你可以避免整个for的事情。
  • title放在label上,无需额外span
  • 更正了type
  • 将所有属性的文本放在单引号中。这在很大程度上是风格的,至少在HTML中(引用attriutes在XHTML中不是风格,它是必需的)。

答案 1 :(得分:0)

<input type="checkbox" id="blablabla" value="myvalue" class="myclass"/> 

<script type="text/javascript">
$(document).ready(function(){

$("#blabla").attr({title: "mytooltip"})
            .before(function(){
                      return "<label for=" + this.id +">MyLabelText</label>"
            });
});
</script> 

或缩写

$(
$("#blabla").attr({title:"mytooltip"})
            .before("<label for='blabla'>MyLabelText</label>");
);