[英]Issue with Java script / Jquery validation?
我有一个选择框和一个文本框。 我需要进行验证,例如是否都选择了我需要“选择名称或选择名称”之类的警报,如果我没有选择两者,则需要“请选择名称或选择名称”之类的警报,如果我选择一个我需要提醒他们,例如“感谢您选择姓名”。 我是用Java脚本完成的,但没有得到结果。 可以使用Java脚本/ 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>
您的问题是您得到输入,而不是价值。
替换var name = document.getElementById(“ raju”); var name = document.getElementById(“ raju”)。value;
此外,您将名称与null和空格进行比较。 您必须将其与空字符串进行比较。 (名称=='')
当您在我的Jsfiddle代码上看到时,我没有使用oonclick属性,而是在javascript上使用了事件监听器(对于HTML来说确实更好)。
document.getElementById("myBtn").onclick= function ()
一秒钟后您忘记了获取名称输入的.value(因此已经返回[HTML DOM object]而不是null或值)。
var name = document.getElementById("raju").value;
正如您提到的,这是使用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");
}
}
由于您的帖子使用的是纯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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.