我不熟悉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
}
答案 0 :(得分:2)
该代码存在很多问题。首先,虽然HTML5 allows只是id
中除空格之外的任何字符,早期版本的HTML were more restrictive和CSS 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。净。 (尤其是花哨的”
字符。)
我上面做了什么:
id
和name
以x
开头,摆脱#
。请参阅上面的链接了解原因。 (我离开了id
,因为我不确定你不需要它;如果你不需要它,如果name
足够,你可以删除它。)input
放在 label
内。当你这样做时,你可以避免整个for
的事情。title
放在label
上,无需额外span
。type
。答案 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>");
);