如何将输入转换为字符串并找到前两个字符的索引?

时间:2017-07-29 02:11:48

标签: javascript html

这是我第一次在这里发帖,因为我无法在任何地方为我的问题找到具体的答案,如果我做错了,请道歉。

无论如何,我想知道是否有办法将表单输入中的文本转换为字符串并获取该文本的子字符串?

例如,如果我有这样的表单输入:

 <form onsubmit="return formValidation()">
     <input type="text" name="foo">
 </form>

我可以抓住输入的内容吗?

function myFunction() {
     var string = document.getElementByName('foo').value;
     // Code converting the selected element to a string
     var index = string.substring(0, 2);
     // Rest of code
}

我对JavaScript的经验很少,所以我对如何将元素转换为字符串感到困惑。欢迎jQuery解决方案。

我想在表单上进行ID号验证,这基本上会检查8位ID号的前两个索引,看看它是否是我所在学区的已知ID号。

谢谢!

编辑:

好的,既然人们真的看到了这个,有人能告诉我这段代码有什么问题吗?即使对于以数字开头的数字,它也会返回false。

function formValidation() {
var idInput = document.getElementsByName('idNumber')[0].value;
var idNumber = idInput.substring(0, 2);

if(idNumber === "71" || idNumber === "81" || idNumber === "53") {
    alert("Your form has been submitted. You will now be redirected to a confirmation page.");
    return true;
} else {
    alert("Please input a valid ID number. If the first two integers of your ID do not match the school district standard, contact a club leader.");
    return false;
}

}

我用来比较字符串错误的方法是什么?

1 个答案:

答案 0 :(得分:1)

问题是:document.getElementByName('foo').value,您错过了s

document.getElementsByName('foo')
                   ^

document.getElementsByName('foo')为您提供NodeList,而不仅仅是一个HtmlElement,

改为使用:

document.getElementsByName('foo')[0].value;

已修改:查看以下功能代码。

&#13;
&#13;
function formValidation() {
  var idInput = document.getElementsByName('idNumber')[0].value;
  var idNumber = idInput.substring(0, 2);

  if (idNumber === "71" || idNumber === "81" || idNumber === "53") {
    alert("Your form has been submitted. You will now be redirected to a confirmation page.");
    return true;
  } else {
    alert("Please input a valid ID number. If the first two integers of your ID do not match the school district standard, contact a club leader.");
    return false;
  }
}
&#13;
<form onsubmit="return formValidation();">
  <input type="text" name="idNumber" autofocus="" value="71456" maxlength="8" />
</form>
&#13;
&#13;
&#13;