2012-09-06 5 views
0

Это элементарная проблема (я думаю), и я смущаюсь спросить ее здесь. На это, возможно, уже был дан ответ, но я не смог найти его в моих поисках.Передача объекта документа функции JavaScript

В его простейшей форме есть два флажка, и каждый CheckBox имеет связанный с ним элемент управления (например, TextBox или DropDownList). Когда проверенное состояние CheckBox изменяется, связанный элемент управления должен быть включен или отключен.

JavaScript функция:

<script type="text/javascript:> 
function enable(bValue, control) 
{ 
    document.getElementByID(control).Enabled = bValue; 
} 
</script> 

Я бы назвал эту функцию как процедуру обработки события, например, включить (this.Checked, "expJob") и включить (this.Checked, "itemJob"), в ниже HTML:

<body> 
    Billable? <asp:CheckBox ID="expBillable" runat="server" Checked="false" OnCheckedChanged="enable(this.Checked, "expJob");" /> 
    to <asp:DropDownList ID="expJob" runat="server" Enabled="true" /> 
    <br /><br /> 
    Billable? <asp:CheckBox ID="itemBillable" runat="server" Checked="false" OnCheckedChanged="enable(this.Checked, "itemJob");" /> 
    to <asp:DropDownList ID="itemJob" runat="server" Enabled="true" /> 

проблема заключается в том, что из-за использования цитат, я не могу указать параметр «expJob» в HTML. Даже использование одинарных кавычек не работает.

Итак, вопрос: будет ли этот подход работать? Каков правильный синтаксис?

Каков наилучший способ написать и использовать такую ​​функцию? Я уверен, что такое использование функции потребуется, когда придется перебирать строки в сетке.

Интересно, что все вопросы/ответы, которые я видел, используют отключенный атрибут элемента управления. Я могу использовать только атрибут Enabled. Может кто-нибудь объяснить, почему и какая разница?

+0

Вы пробовали спасаясь от '" 'S вокруг expJob с' \ \ 's? – pdoherty926

+0

Да, я пытался избежать кавычек (\"). Но редактор не узнал об этом и все еще вызывал ошибку в документе HTML. – Chili

+0

Связано ли это с взаимодействием (и конфликтами) между тегами ASP и JavaScript? – Chili

ответ

0
  1. Вы должны использовать одиночные кавычки ('') itemJob
  2. Я думаю OnCheckChanged это событие сервера. Asp.net нуждается в обработчике кода, когда вы хотите его использовать. Вот почему вы получаете сообщение об ошибке. Найдите правильное событие на стороне клиента, если вы хотите запустить событие на стороне клиента. Позаботьтесь об увольнении postbacks, но по умолчанию для флажка «no auto postback» в любом случае.
-1

Пожалуйста, обратите внимание, что Javascript чувствителен к регистру, так document.getElementById хорошо, document.getElementByID плохо (обратите внимание на ID в шапках плохо)

Смежные вопросы