我有一个选择框和一个文本框。我需要进行验证,如果两者都被选中我需要警告,如#34;选择一个名称或选择名称",如果我没有选择两者我需要提醒像#34;请选择一个名称或选择名称",如果我选择其中一个,我需要提醒,如#34;感谢您选择名称"。我是通过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>
答案 0 :(得分:1)
你的问题是你获得了输入,而不是价值。
替换var name = document.getElementById(&#34; raju&#34;); var name = document.getElementById(&#34; raju&#34;)。value;
此外,您将名称与null和空格进行比较。您必须将它与空字符串进行比较。 (姓名==&#39;&#39;)
答案 1 :(得分:1)
当你在我的Jsfiddle code上看到时,我没有使用oonclick属性,而是使用javascript上的事件监听器(真的更适合你的html)..
document.getElementById("myBtn").onclick= function ()
你忘记了tu的一秒钟检索你的名字输入的值。所以已经返回[HTML DOM对象]而不是null或值。
var name = document.getElementById("raju").value;
答案 2 :(得分:1)
以下是您使用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");
}
}
答案 3 :(得分:0)
由于您的帖子是纯JavaScript,我决定相应地回答。如上所述,您不应该检查" "
的空字符串,而是检查''
或""
。此外,您甚至不需要 ,因为您只需检查if (str) { // string exists }
即可。对于您的name
变量,您指的是HTML元素,而不是string
值。所以,总而言之(一些错误),这里没有什么大不了的。
我已经抽象了一点这个过程,让您了解如何在没有大量重复代码的情况下验证许多相似字段。
注意:您应该找到用inline event handlers
处理程序替换unobtrusive
的方法。例如:
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;
}
}