Java脚本/Jquery验证问题
Issue with Java script / Jquery validation?
我有一个选择框和一个文本框。我需要验证,如果两者都选择了,我需要像"要么选择一个名字,要么选择名字"这样的警报,如果我没有同时选择两者,我需要"请选择一个名称或选择名字"那样的警报,如果我选择其中一个,我需要象"谢谢你选择名字"一样的警报。我用java脚本做了,但没有得到结果。可以通过使用javascript/Jquery来完成吗?任何建议
<body>
pick name:
<select id="ddlView">
<option value="0">Select</option>
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test3</option>
</select>
</br>
select name:
<input type= "text" name="raju" id="raju"></input>
<input type="button" onclick="Validate()" value="select" />
<script type="text/javascript">
function Validate()
{
var name = document.getElementById("raju");
var e = document.getElementById("ddlView");
var strUser = e.options[e.selectedIndex].value;
var strUser1 = e.options[e.selectedIndex].text;
if(strUser==0 && (name==null || name== ' '))
{
alert("Please select a name or pick the name");
}
else if( (!(strUser==0)) &&(! (name==null || name== ' ')))
{
alert("Either select a name or pick the name");
}
else
{
alert("Thank you for selecting the name");
}
}
</script>
</body>
这是您使用JQuery进行的验证,正如您所提到的:
function Validate()
{
var name = $("#raju").val();
var selected_name = $('#ddlView :selected').val();
if(selected_name == 0 && name == "")
{
alert("Please select a name or pick the name");
}
else if( !(selected_name == 0) && name != "")
{
alert("Either select a name or pick the name");
}
else
{
alert("Thank you for selecting the name");
}
}
Fiddle
您的问题是您得到的是输入,而不是值。
替换var name=document.getElementById("raju");var name=document.getElementById("raju").value;
此外,您还可以将名称与null和空格进行比较。您必须将它与空字符串进行比较。(name=='')
当您在我的Jsfidle代码中看到时,我不使用oonclick属性,而是在javascript上使用事件侦听器(实际上更适合您的html)。。
document.getElementById("myBtn").onclick= function ()
一秒钟后,您忘记了名称输入的检索.value(所以已经返回[HTMLDOM对象],而不是null或值.
var name = document.getElementById("raju").value;
由于您的文章是纯JavaScript的,我决定相应地回答。如前所述,不应该检查空字符串中的" "
,而应该检查''
或""
。此外,您甚至不需要执行,因为您可以简单地检查if (str) { // string exists }
。对于name
变量,您指的是一个HTML元素,而不是它的string
值。所以,总的来说(一些错误),这里没有什么大的错误。
我对这个过程进行了一点抽象,让您了解如何在没有大量重复代码的情况下验证许多类似的字段。
注意:您应该找到用unobtrusive
处理程序替换inline event handlers
的方法。示例:
document.getElementById('someButton').onclick = Validate;
话虽如此,这里有一些建议:
var emptyString = function(str) {
if (str) {
return false;
}
return true;
};
var emptySelect = function(sel) {
if (parseInt(sel) !== 0) {
return false;
}
return true;
};
function Validate() {
var name = document.getElementById("raju").value;
var e = document.getElementById("ddlView");
var strUser = e.options[e.selectedIndex].value;
switch (true) {
case (!emptySelect(strUser) && !emptyString(name)):
alert('Either select a name or pick a name.');
break;
case (emptySelect(strUser) && emptyString(name)):
alert('Please select a name or pick a name.');
break;
default:
// Possibly some default validation
alert('Thanks for picking a name');
break;
}
}
- Javascript验证问题
- CRM身份验证问题
- 获取json结果的身份验证问题
- JS表单验证问题
- 如何在窗体中使用多个按钮解决验证问题
- 带有jquery验证问题的php表单
- Google UiApp中的Google Apps脚本验证问题
- 骨干模型验证问题
- IPV6验证问题
- PHP表单,MailFoction和Google reCaptcha验证问题
- 我在登录页面上遇到php验证问题
- jQuery,CORS,JSON(不带填充)和身份验证问题
- JQuery 使用引导 col-x 时验证问题
- 如何清除两个提交按钮的验证问题
- Facebook标签/页面身份验证问题:getLoginStatus总是返回not_authorized
- asp.net JavaScript 验证问题
- 主干验证问题
- 表单验证问题(Javascript)
- jquery ajax 调用表单身份验证问题
- 指令中的角度验证问题