最大长度检查不起作用

时间:2016-04-18 10:02:15

标签: javascript html css

使用'getElementsByname',但它对我没有帮助。我做错了什么? “isAllowedSymbol”功能很好但不是“checkNumbers”。

function checkNumbers(this) {
  var element = document.getElementsByname('answer')[0];
  if (element != null && element.value.length == 10) {
    element = element.replace(element, '');
  }
}

function isAllowedSymbol(input) {
  var value = input.value;
  var rep = /[a-zA-Z]/;
  var rep2 = /[а-яА-Я]/;

  if (rep.test(value)) {
    value = value.replace(rep, '');
    input.value = value;
    if (rep2.test(value)) {
      value = value.replace(rep2, '');
      input.value = value;
    }
  }
} 


<input type="text" maxlength="10" onkeyup="isAllowedSymbol(this);checkNumbers(this); " placeholder="Enter data" name="answer" "> <br>

我想通过名字而不是身份证,我的问题是什么?或者我可以通过“id”获得它?谢谢。

2 个答案:

答案 0 :(得分:0)

首先你拼错了getElementsByname。它的正确名称是getElementsByName。此功能允许您通过元素名称检索元素。如果您要选择input属性为name的{​​{1}}元素,请使用:

answer

答案 1 :(得分:0)

您不能接受"this"作为参数的原因因为它是意外的令牌还错误@ getElementsByname。但是当您从this发送click-handler时,您不需要这样做。您可以使用除this

之外的任何其他参数名称来获取元素

function checkNumbers(element) {
  if (element != null && element.value.length == 10) {
    element = element.replace(element, '');
  }
}

function isAllowedSymbol(input) {
  var value = input.value;
  var rep = /[a-zA-Z]/;
  var rep2 = /[а-яА-Я]/;

  if (rep.test(value)) {
    value = value.replace(rep, '');
    input.value = value;
    if (rep2.test(value)) {
      value = value.replace(rep2, '');
      input.value = value;
    }
  }
}
<input type="text" maxlength="10" onkeyup="isAllowedSymbol(this);checkNumbers(this); " placeholder="Enter data" name="answer">