jQuery获取复选框的text属性

时间:2009-12-31 03:55:39

标签: asp.net jquery checkbox

我正在使用以下语句向页面添加复选框;

<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。

我哪里错了?请建议。

欢呼声

3 个答案:

答案 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()