检查输入字段是否包含@字符?

时间:2015-05-20 16:12:34

标签: javascript jquery validation input

我试图检查输入字段是否包含@符号

所以这就是我所拥有的并且它不起作用:

$( "#Button" ).click(function() {
    if ($('#email:contains("@")')) {

    } else { 
        $('#email').text('Wrong');
    }
});

http://jsfiddle.net/xJtAV/70/

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

:contains()返回符合条件的jQuery对象。它与价值不匹配。

使用indexOf()而不是.val()

if ($('#email').val().indexOf('@') > -1) {

另外,在else{}中,使用.val()作为text()不会设置任何值。

$('#email').val('Wrong');

但我建议您使用另一个元素<span id="emailError">

<强> Updated Fiddle

答案 1 :(得分:4)

试试这个:http://jsfiddle.net/xJtAV/71/。字符串函数indexOf()将搜索任何字符串以查找您喜欢的内容并返回第一个出现的第一个字符的索引...

String indexOf()docs:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

<强> JS

$( "#Button" ).click(function() {

    if ($('#email').val().indexOf('@') >= 0) {
       $('#email').val('Yes! It contains an "@" symbol!');
    } else { 
        $('#email').val('No :( No "@" symbol');
    }

});

<强> HTML

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<input id="email" name="email" class="email" type="text" />
<br><br>

<div id="Button" style="height:100px; width: 150px; background-color: #000;">
</div>