2015-11-06 48 views
0

HTML在if语句中为JQuery指定一个HTML ID?

<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)时,它们显示错误。

回答

1

嗯,这里的一些事情了。

<select>元件具有value(jquery的.val())等于其选择optionvalue=".."属性。

我可能是新来的fieldset元素,但我不认为他们有自己的价值观。所以你从错误的元素中获取val();你想要<select>的价值。

这将返回为一个字符串,因此您不需要比较元素(如果您这样做了,则不希望在JQuery对象之间使用==)。请检查产生的val()是否等于Please Select。 (对于更干净的代码,你可以给该选项的空白值,在这种情况下,它仍然会表现出同样的文本,但并不需要这样的代码靠不住的字符串比较)

+0

三江源我没有完全理解你的答案,但会变成这样有效? - 功能validateDestination(){ $(”。COL-SM-6 “)验证({ 消息:{ 位置:{ Destination.addClass(” 错误 “); Destination.text(” 不正确的目的地“); return:false; } } }); }; –

+0

@elmashrafi我可能不是最好的人问;我对JQ的“验证”功能知之甚少。你在评论中的内容似乎并不是有效的JavaScript(我认为它需要一个函数关键字) – Katana314