2013-12-19 73 views
0

我有了一个字段现在为什么会出现这种情况的一个“S”

<div style="width:100px; padding-top:10px;margin-left:10px;float:left;" align="left">Your Username:</div> 
<div style="width:300px;float:left;" align="left"><input type="text" id="username" name="username" value="" class="vpb_textAreaBoxInputs"></div> 

HTML表单时,我尝试使用javacript这样

<script> 
    $(document).ready(function() { 
     $("#smbt").click(function(){ 
      if ($("#username").val()=="") { 
       alert("Field is empty."); 
      } else { 
       alert("You are ok."); 
      } 
     }); 
    }); 
</script> 

验证表单上述程序工作正常,但是当我改变DIV ID为“用户名”和名称为“用户名”像这样

<input type="text" id="usernames" name="usernames" class="vpb_textAreaBoxInputs"> 

一个奇怪的事情发生只要我做了上面的一行,程序开始给出错误的输出。如果用户名textfield为空,它会弹出警告消息“您确定”,如果没有,它仍会弹出警告消息“您确定”。但只要我更改id =“用户名”name =“用户名”,程序就能正常运行。为什么发生这种情况是因为's'

+4

您是否已将$('#username')'更改为'$('#usernames')'? – brbcoding

回答

4

您需要更改您的jQuery以匹配ID更改。当ID是“用户名”时,它正在查找“用户名”,因此该语句是错误的。

if ($("#username").val()=="") { 

应该

if ($("#usernames").val()=="") { 
1

你改变这一个了?

$("#username").val() 

$("#usernames").val() 
0

当您更改字段的idusernames$("#username").val()将导致undefined这是一个空字符串不同。所以你也需要改变jQuery选择器。

如果你想处理undefined和空字符串,你可以测试更改为:

if (!$("#username").val()) { 
    alert("Field is empty."); 
} else { 
    alert("You are ok."); 
} 
0

这是发生,因为用户名没有实际的网页上找到。

JQuery选择器返回一个匹配的aleements数组。所以val变得不确定。

这不等于“”,因此你的代码输入了else子句。

HTH

相关问题