[英]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.