HTML
<fieldset class="col-sm-6">
<label for="FDestination" >From</label>
<select name="Location" >
<option value = "Please Select" id = "DefaultDes" >Please Select </option>
<option value="Newport">Newport</option>
<option value="Mahdi">Mahdi</option>
<option value="Cardiff">Cardiff</option>
<option value="Cilo">Cilo is </option>
</select>
</fieldeset>
JQuery的
$document.ready(function(){
var form = $(".group");
var Destination = $(".col-sm-6"); //Creates Variables from forms
var Timing = $(".time");
var Calenar = $(".calendar");
form.submit (function (){
if (validateName() & validateDestination & validateTiming & validateCalendar(){ //If it passes all of these then return true
return true;
} else {
return : false;
}
});
function validateDestination () {
if (Destination.val() == DefaultDes) {
Destination.addClass("error");
Destination.text("Incorrect Destination");
return: false;
}else {
Destination.removeClass("error");
Destination.text("Whats your name?" );
return:true;
}
}
};
所以我试图从HTML中将我的id DefaultDes
转换为JQuery中的if
语句。现在我有:
if (Destination.val() == DefaultDes)
在JQuery中,但语法看起来不确定。我基本上要做的是当用户在HTML中选择“请选择值”(标识为DefaultDes
)时,它们会显示错误。
答案 0 :(得分:1)
嗯,这里有一些事情。
<select>
元素的value
(jquery .val()
)等于其所选value=".."
的{{1}}属性。
我可能是option
元素的新手,但我不认为他们有自己的价值观。所以你从错误的元素中取出fieldset
;你想要val()
的价值。
它将以字符串形式返回,因此您不需要比较元素(如果您这样做,则不希望在JQuery对象之间使用<select>
)。只需检查结果==
是否等于val()
。 (对于更干净的代码,您可以为该选项提供一个空白值,在这种情况下,它仍然会显示相同的文本但不需要在代码中进行如此糟糕的字符串比较)