jQuery для получения текстового атрибута флажка

Я добавляю флажок к странице с помощью следующего утверждения;

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

Я должен получить текстовый атрибут того флажка по щелчку. Я попробовал $(this).attr('Text'); внутри $('input[type=checkbox]').click(function(){}); но это возвращается неопределенный.

Где я иду не так, как надо? Предложите.

удачи

5
задан CMS 31 December 2009 в 04:14
поделиться

3 ответа

ASP . NET выдает свойство Text управления сервером ASP:CheckBox в виде элемента label сразу после элемента на сгенерированной разметке на клиенте, это выглядит как-то так:

<input id="someId" type="checkbox" name="someId" />
<label for="someId"> someText </label>

Вы можете получить text из label по:

$("input:checkbox").click(function() {
  var $label = $(this).next('label');
  alert($label.text());
});
10
ответ дан 13 December 2019 в 19:28
поделиться

Контроль CheckBox превращает Text внутри элемента . Текст не является частью флажка HTML. Если вы хотите получить текст из jQuery, вы должны получить его из элемента .

Кроме того, генерируемый элемент на самом деле не имеет идентификатора. Если ваш CheckBox имеет имя checkBox1, то HTML, который он генерирует, будет , и текст находится внутри этого элемента. Я считаю, что правильным синтаксисом jQuery будет:

$('label[for="checkBox1"]').html()
1
ответ дан 13 December 2019 в 19:28
поделиться

Это зависит от того, как вы реализуете то, что вы называете "текст".

Если это так:

<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()
0
ответ дан 13 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: