警报框没有出现 - 这个功能有什么不对?

时间:2014-09-09 09:50:26

标签: javascript

<script type="text/javascript"> 
function check_phone(){
    var x=$('#phone1').val();
    var landline = /^([0-9]{4}[\-]{1}[0-9]{7})$/;
    var mobile = /^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/;
    if (landline.test(x))
alert('first condition');
        $('#phone1').css('border','2px solid #00a500');
    else if(mobile.test(x))
alert('second condition');
        $('#phone1').css('border','2px solid #00a500');
    else
        $('#phone1').css('border','2px solid #a50000');
alert('third condition');
}
</script>

<input type="text" value="" name="phone1" id="phone1" onchange="check_phone()" required />

输入电话号码后按Tab键时,它不会显示check_phone()函数的警告框。它甚至进入功能并检查它?它根据函数中提到的css甚至没有设置文本框的样式。我该怎么知道?请帮忙

4 个答案:

答案 0 :(得分:2)

所有if块都没有结束括号)并将它们放在大括号中

if (landline.test(x))
{
alert('first condition');
        $('#phone1').css('border','2px solid #00a500');
}
    else if(mobile.test(x))
{
alert('second condition');
        $('#phone1').css('border','2px solid #00a500');
}
    else
{
        $('#phone1').css('border','2px solid #a50000');
alert('third condition');
}

同时更改

<input type="text" value="" name="phone1" id="phone1" onchange="check_phone()" required />

答案 1 :(得分:1)

提供 ID ..您刚刚提供了名称

<input type="text" value="" name="phone1" id="phone1" onchange="check_phone()" required />

还为if()

添加大括号
 if (landline.test(x) {
alert('first condition');
        $('#phone1').css('border','2px solid #00a500');
}
    else if(mobile.test(x) {
alert('second condition');
        $('#phone1').css('border','2px solid #00a500');
}
    else{
        $('#phone1').css('border','2px solid #a50000');
alert('third condition');
}

答案 2 :(得分:1)

您错过了每个条件(的右括号if (landline.test(x),如果没有{},它只会执行警示线,而css样式不会成为该条件的一部分所以你应该使用:

if (landline.test(x)) {
    alert('first condition');
    $('#phone1').css('border','2px solid #00a500');
}

适用于所有条件。

并且还改变了以下行,正如@arunrc指出的那样,你需要给出id属性来从这样的代码中访问它。

<input type="text" value="" name="phone1" id="phone1" onchange="check_phone()" required />

答案 3 :(得分:1)

你忘了很多右括号和括号。 jsfiddle上的Here a working example