如何根据javascript中的输入值调用函数?

时间:2018-06-12 06:37:46

标签: javascript html5

下面是我的Html示例代码,其中有一个输入字段,可以接受数字和字母。

我需要根据用户输入的值来调用函数,即如果用户输入纯10分位电话号码,则在用户输入电子邮件呼叫功能时调用功能号码(),否则混合然后错误。

我只需要一个电话号码和电子邮件的输入元素。

HTML

<div>
<input type="text" id="contact"/>
<button onClick()="???">Submit</button>
</div>

<script>
function number(){
  // call when input value is a number;
}

function email() {
 // call this when input value is an email;
}
</script>

4 个答案:

答案 0 :(得分:2)

<button onclick="number()">Submit</button>

如果您不知道要拨打哪个功能,则需要确定:

HTML:

<button onclick="decideFunction()">Submit</button>

JS:

function decideFunction() {
    const value = document.getElementById('contact').value;
    if (!Number.isNaN(value)) {
        number();
    } else if (isEmail(value)) { // check with regexp
        email(); //etc..
    }
}

答案 1 :(得分:1)

只需调用另一个函数来检查该值是否为数字并采取相应的行动:

&#13;
&#13;
function func() {
  let val = document.getElementById("contact").value;
  if (!isNaN(parseInt(val))) number();
  else email();
}

function number() {
  // call when input value is a number;
  console.log("number() called");
}

function email() {
  // call this when input value is an email;
  console.log("email() called");
}
&#13;
<input type="text" id="contact" />
<button onclick="func()">Submit</button>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您可以使用regex检查电子邮件值,并使用parseInt()进行长度验证以检查电话号码值

function checkInput(){
  var contact = document.getElementById('contact').value;
  if(contact.length === 10 && parseInt(contact)){
    number();
  } else if(!parseInt(contact)){
    var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if(reg.test(contact)){
       email();
    } else {
       mix();
    }
  } else {
     mix();
  }
  
}
function number(){
  console.log("number");
}

function email() {
 console.log("email");
}

function mix() {
  console.log("Error");
}
<div>
<input type="text" id="contact"/>
<button onClick="checkInput();">Submit</button>
</div>

答案 3 :(得分:0)

Try this....

 <div>
    <input type="text" id="contact"/>
    <button onClick()="decideFun();">Submit</button>
    </div>

    <script>
    function decideFun(){
      var inputVal = $("#contact").val();

      if($.isNumeric(inputVal)==true) number();
      else email();
    }
    function number(){
      // call when input value is a number;
    }

    function email() {
     // call this when input value is an email;
    }
    </script>