2016-04-30 116 views
0

我创建了是这样的表单域条件:修改onclick属性上

<form action="#" class="header_form clearfix"> 
 
<input type="text" placeholder="Enter Your Address" id="autocomplete"> 
 
<a href="#" class="btn" onclick="document.location='/address?address='+$('#autocomplete').val();return false;">Enter Your Address</a> 
 
</form>

我希望把一个Javascript条件检查文本输入具有文本它在按钮之前会有onclick参数。如果在键控上没有文字,则onclick不在按钮上。如何做?

+0

为什么这样说?只需使用'addEventListener'将按钮处理程序附加到按钮即可。当你的监听器被触发时,检查文本输入是否有文本,并做出适当的响应。 –

+0

@RayNicholus如何做?你能包括一个代码如何做? -newb here – TheDon

回答

1

如果您正在使用jQuery,你可以做这样的事情:

$('.btn').on('click', function() { 
    var email = $.trim($('#autocomplete').val()); 
    if(email.length) { 
    window.location = '/address?address='+email; 
    } else { 
    alert('Enter your email first'); 
    } 
}); 

$ .trim有至少防止空的空间触发一个有效的提交。
在你最好用EMAIL正则表达式去任何情况下:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

+0

正是我需要的感谢! – TheDon

-1

如果它不是一个有效的电子邮件地址,这将禁用链接太

<!DOCTYPE html> 
<html> 

    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
    </head> 

    <body> 
    <script type="text/javascript"> 

     function validateEmail(email) { 
     var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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,}))$/; 
     return re.test(email); 
     } 

     $(document).ready(function() { 
     $('#autocomplete').bind('input', function() { 
      if ($(this).val().trim().length === 0) { 
      document.getElementById('myButton').removeAttribute('href'); 
      } else { 
      if (validateEmail(document.getElementById("autocomplete").value) === true) { 
       document.getElementById('myButton').setAttribute("href",'/address?address=' + document.getElementById("autocomplete").value); 
      } else { 
       document.getElementById('myButton').removeAttribute('href'); 
      } 
      } 
     }); 
     document.getElementById('myButton').removeAttribute('href'); 
     }); 
    </script> 

    <form action="#" class="header_form clearfix"> 
     <input type="text" placeholder="Enter Your Address" id="autocomplete" /> 
     <a href="#" id="myButton" name="myButton" class="btn">Enter Your Address</a> 
    </form> 
    </body> 
</html> 
+0

为什么downvote?这个问题说“在按钮之前会有onclick参数”,我假设它是在输入没有有效的电子邮件地址时禁用点击本身。聪明的人能否给出一个理由,然后倒下来,而不是像疯狂的公牛那样在downvote按钮上进行操作? –