document.getElementsByName(“cad.question7.answer8”)。disabled ='false';

时间:2013-05-09 07:09:30

标签: javascript

我想根据复选框的选择启用禁用的文本字段,因此下面是根据复选框选择启用文本字段的JavaScript代码,这对我不起作用并使用struts 1.3 HTML标记< / p>

if(document.getElementsByName("cad.question7").checked = 'true'){
    document.getElementsByName("cad.question7.answer8").disabled = 'false';
}
<html:checkbox  value="Y" property="cad.question7" onclick="javascript:enableText7();" />
<bean:message key="cm.assessments.cad.question.7.a" />
<html:text size="10" disabled="true" property="cad.question7.answer8" tabindex="68" />

4 个答案:

答案 0 :(得分:4)

getElementsByName返回HTMLCollection

要访问集合中的每个元素,要么遍历它们,要么只有一个,请访问第一个,类似于:

document.getElementsByName("cad.question7.answer8")[0].disabled = false;

DEMO - 访问HTMLCollection

中的第一项

如果您希望多次匹配迭代它们,请执行以下操作:

var index;
var elements = document.getElementsByName("cad.question7.answer8");
var count = elements.length;

for(index = 0; index < count; index++){
    elements[index].disabled = false;
}

DEMO - 迭代HTMLCollection

中的所有项目

此外,在执行条件评估时,您使用=====作为单个=会将正确的值分配给左侧,而不是将它们相互比较。

假设只需要一个匹配项,您的完整代码可能与此类似:

if(document.getElementsByName("cad.question7")[0].checked){
    document.getElementsByName("cad.question7.answer8")[0].disabled = false;
}

DEMO - 上面的新代码示例


答案 1 :(得分:1)

它应该是布尔值。 disabled取布尔值,getElementsByName返回数组中的多个元素。

disabled="false"的问题在于它仍然在文本输入元素中留下了属性disabled

试试这个: -

if(document.getElementsByName("cad.question7")[0].checked){

    document.getElementsByName("cad.question7.answer8")[0].disabled = false;
}

参考文献: -

getElementsByName

disabled

答案 2 :(得分:1)

  • 在if条件中,您希望使用=====比较运算符,而不是=赋值运算符。但是与布尔值进行比较是没有意义的,只需使用布尔本身(或其否定)。
  • document.getElementsByName不是单个元素,而是NodeList。您需要迭代它,或者 - 为简单起见 - 访问它的第一个项目。
  • checkeddisabled属性都是布尔值。你不应该比较/给它们分配字符串,而是布尔值。
if (document.getElementsByName("cad.question7")[0].checked) {
    document.getElementsByName("cad.question7.answer8")[0].disabled = false;
}

你甚至可以这样做:

var question = document.getElementsByName("cad.question7")[0],
    answer = document.getElementsByName("cad.question7.answer8")[0];
answer.disabled = !question.checked;

答案 3 :(得分:0)

您可以使用JavaScript代码,

但我建议你使用它(第一个):

if(document.getElementsByName("cad.question7").checked){
    document.getElementsByName("cad.question7.answer8")[0].disabled = false;
}

if(document.getElementsByName("cad.question7").checked == true){
    document.getElementsByName("cad.question7.answer8").disabled = false;
}

var chkTest = document.getElementsByName("cad.question7");
if(chkTest.checked){
    document.getElementsByName("cad.question7.answer8").disabled = false;
}