如何在onchange()中调用多个参数的函数

时间:2016-06-26 07:10:32

标签: javascript

我是javascript的新手,我在onchange()中遇到了麻烦;

以下是代码;

<input type="text" name="txt"  id="aa" onchange="test()">
<input type="text" name="txt"  id="bb" onchange="test()">

function test(a, b, c) {
  var i = 0;
  if (a.value == '') {
      document.getElementById("aa").innerHTML = "a Cannot Be Blank ";
      return i;
  } else if (b.value == '') {
      document.getElementById("bb").innerHTML = "b Cannot Be Blank ";
      return i;
  } else {
      i = 1;
      return i;
  }
}

我不知道如何调用上面的函数以便我可以完成文本框验证。我试过onchange =&#34; test(this)&#34; ,但我不行。请给我一个解决方案。

3 个答案:

答案 0 :(得分:0)

1-首先在js中编写函数时,必须注意开括号和右括号的数量(范围)

function test(a,b,c)
{
    var i =0;
   if (a.value  =='')
   {
     document.getElementById("aa").innerHTML="a Cannot Be Blank ";
    return i;
   }

   else if (b.value  =='')
  {
      document.getElementById("bb").innerHTML="b Cannot Be Blank ";
     return i;
   }

    else {
    i=1;
    return i;
   }


}

2 - 在onchange函数中传递multilple参数..你可以这样做

<input type="text" name="txt"  id="aa" onchange="test(2,2,5)">

答案 1 :(得分:0)

当某些内容发生变化时,您想要检查输入字段的空值。尝试检查用作参数的每个输入ID。

<input type="text" name="txt"  id="aa" onchange="test(this.id,'bb')">//this.id returns current element id
<input type="text" name="txt"  id="bb" onchange="test('aa',this.id)">//use id as parameters
<script>
function test(a,b)
{
  var i =0;
  var aa = document.getElementById(a);//call element by parameter id
  var bb = document.getElementById(b);
   if (aa.value =='')
   {
     aa.value="a Cannot Be Blank ";
   }

   else if (bb.value  =='')
  {
      bb.value="b Cannot Be Blank ";
   }

    else {
    i=1;
    return i;
   }
 }        
     </script>

答案 2 :(得分:0)

1)当你想操纵&#34;值&#34;在<input>元素中,您不使用 innerHTML 。您可以通过访问其值属性来操纵它:

document.getElementById("MY_INPUT_ID").value = 'Cannot Be Blank';

2)当您想要对多个文件进行验证时,您可以在表单提交上进行验证,而不是在&#34;实时&#34;中进行验证。如果你想制作&#34;实时&#34;验证然后每次只关注一个字段更好。(如果其他限制不适用)。

3) onChange 事件适用于<select>元素,不会触发<input>元素。如果你想&#34;监控&#34;你应该使用的<input>元素

4)你不应该插入&#34;不能空白&#34;在输入字段中,因为它将被视为文本,您将遇到问题。如果要显示消息,则需要在输入旁边创建一个包含消息的容器。

以下代码更像是一个示例,可帮助您找到正确的方向。

<input type='text' name='aInput' id='aInput' onkeyup='validate(this);'></input>
<input type='text' name='bInput' id='bInput' onkeyup='validate(this);'></input>
<div id='error'></div>
<script language="JavaScript">
  function validate(el){
    var myInputValue = el.value;
    var myInputID = el.id;

    if(myInputValue === ''){
      document.getElementById(myInputID).style.backgroundColor = 'rgba(255,0,0,0.32)';
      document.getElementById('error').innerHTML = el.name + " Cannot Be Blank";
    }else{
      document.getElementById(myInputID).style.backgroundColor = '#fff';
      document.getElementById('error').innerHTML = "";
    }
  }
</script>