禁用许多字段名称javascript

时间:2018-07-20 20:43:44

标签: javascript function jsp disabled-input

这是我的问题:

我有一个jsp页面,该jsp具有许多这样的文本字段:

function disableIfeFields(){
    document.getElementsByName("numIdentificacionPF").disabled = true;

}

因此,当焦点位于特定字段中时,我想禁用某些文本字段

但是此字段中没有一个带有“ id”标签,并且我无法对其进行修改以包含它。

我可以禁用使用其给定名称的字段,其中没有一个重复相同的名称。

例如具有这样的功能:

{{1}}

谢谢

3 个答案:

答案 0 :(得分:2)

希望以下内容会有所帮助。由于选择结果是元素列表,因此您将不得不遍历结果。 请注意,由于您说没有输入重复相同的名称,所以我使用的是querySelectorAll,毕竟这可能是更合适的方法……

var inputs = document.querySelectorAll('input[type="text"]');
for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].id === 'label') {
        continue;
    }
    inputs[i].disabled = true;
}

答案 1 :(得分:2)

也许是这样的:

function disableIfeFields(){
    document.querySelectorAll('[property="cicPF"]')[0].disabled = true;
}

disableIfeFields();
<input type="text" property="cicPF" maxlength="9" style="text-transform: uppercase;" onfocus="disableIfeFields()"/>

答案 2 :(得分:1)

您需要遍历列表并禁用所需的所有字段,并使用输入显示示例:

function disableIfeFields() {
  var inputList = document.getElementsByName("numIdentificacionPF")
  for (var x = 0; x < inputList.length; x++) // comparison should be "<" not "<="
  {
    inputList[x].disabled = true;
  }
}
<html:text property="cicPF" maxlength="9" style="text-transform: uppercase;" />
<input onfocus="disableIfeFields()" type="text" name="fname"><input type="text" name="numIdentificacionPF"><input type="text" name="numIdentificacionPF"><input type="text" name="numIdentificacionPF"><input type="text" name="numIdentificacionPF">
<input
  type="text" name="numIdentificacionPF">