Я добавляю флажок к странице с помощью следующего утверждения;
<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(){});
но это возвращается неопределенный.
Где я иду не так, как надо? Предложите.
удачи
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());
});
Контроль CheckBox
превращает Text
внутри элемента . Текст не является частью флажка HTML. Если вы хотите получить текст из jQuery, вы должны получить его из элемента
.
Кроме того, генерируемый элемент на самом деле не имеет идентификатора. Если ваш
CheckBox
имеет имя checkBox1
, то HTML, который он генерирует, будет , и текст находится внутри этого элемента. Я считаю, что правильным синтаксисом jQuery будет:
$('label[for="checkBox1"]').html()
Это зависит от того, как вы реализуете то, что вы называете "текст".
Если это так:
<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()