我正在使用以下语句向页面添加复选框;
<script language="C#" runat="server">
protected void Page_Load ( object src, EventArgs e )
{
if (!IsPostBack)
{
CheckBox XChkBox = new CheckBox(); //instance of System.Web.UI.WebControls.CheckBox
XChkBox.ID = "someId"
XChkBox.Text = "someText"
somePlaceHolder.Controls.Add(XChkBox);
}
}
</script>
我需要在点击时获取该复选框的Text属性。我在$(this).attr('Text');
内尝试$('input[type=checkbox]').click(function(){});
,但它返回undefined。
我哪里错了?请建议。
欢呼声
答案 0 :(得分:10)
ASP .NET将Text
服务器控件的ASP:CheckBox
属性呈现为label
元素,就在客户端生成的标记上的<input type="checkbox" />
之后,它看起来像这样的东西:
<input id="someId" type="checkbox" name="someId" />
<label for="someId"> someText </label>
您可以通过以下方式获取text
的{{1}}
label
答案 1 :(得分:1)
CheckBox
控件在Text
元素内呈现<label>
。该文本不是HTML复选框的一部分。如果你想从jQuery获取文本,你必须从<label>
获得它。
此外,它生成的<label>
实际上没有ID。如果您的CheckBox
名为checkBox1
,则其输出的HTML将为<label for="CheckBox1">
,文本位于该元素内。我相信正确的jQuery语法将是:
$('label[for="checkBox1"]').html()
答案 2 :(得分:0)
这取决于您如何实施所谓的“文字”。
如果是这样的话:
<input id="chkFoo" type="checkbox" text="Check me, fool!" />
然后你可以像这样访问文本:
$("#chkFoo").attr("text")
如果你这样做
<input id="chkFoo" type="checkbox" />Check me, fool!
我觉得你运气不好。如果你必须这样做,请在文本周围放一个范围并抓住它:
<input id="chkFoo" type="checkbox" /><span id="spnFoo">Check me, fool!</span>
$("#spnFoo").text()