2013-12-16 16 views
-1

我在使用jquery時在html元素中使用標識符This時遇到問題。將'this'標識符與元素的功能綁定

預期的結果:

每當我選擇從下拉列表中選擇語言,它必須驗證。我也從下拉列表中選擇一個關卡。

要完成此操作,我需要將'.LanguageBlock'轉換爲這個選擇器。

嘗試:

我的嘗試是使用兒童()和父母(),我相信它會工作,但我有這樣的問題選擇。

我想我也有使用。每個選擇

HTML

<div class="LanguageBlock"> 
    <select class="Language"> 
     <option>Select</option> 
     <option value="1">English</option> 
    </select> 
    <select class="Level"> 
     <option>Select</option> 
     <option value="1">Basic</option> 
    </select> <br></br> 
</div> 
<div class="LanguageBlock"> 
    <select class="Language"> 
     <option>Select</option> 
     <option value="1">English</option> 
    </select> 
    <select class="Level"> 
     <option>Select</option> 
     <option value="1">Basic</option> 
    </select> 
</div> 
<br></br> 
    <a id="submit" style="border-radius:50%;border:1px solid red;padding:10px">Submit</a> 

的Javascript

var Validator = 1; 
$('#submit').bind('click', function(){ 
    var Language = $('.LanguageBlock').children('.Language').val();  
    var Level = $('.LanguageBlock').children('.Level').val(); 

    if(Language!='' && Level==''){ 
     Validator = 0; 
    } 

    if (Validator==0){ 
     alert('Must select a level for the current language you selected'); 
     return false; 
    } 

}); 

JS Fiddle

+0

它並不真正的樣子提交按鈕有任何孩子,也不具有匹配的父母,讓所有的假設是錯誤的。 – adeneo

+0

感謝您重新申請@adeneo我編輯了我的問題。我需要用作'This'選擇器.LanguageBlock我認爲我可以使用每個函數來做到這一點 –

+0

爲什麼你要定義這樣的變量?在JavaScript程序員眼中,他們持有對類的引用。 – undefined

回答

2
合併

這個怎麼樣:

$('#submit').bind('click', function(){ 
    $('.LanguageBlock').each(function() { 
    var Language = $(this).find('.Language option:selected').val();  
    var Level = $(this).find('.Level option:selected').val(); 

    if(Language!='Select' && Level=='Select'){ 
     Validator = 0; 
    } 

    if (Validator==0){ 
     alert('Must select a level for the current language you selected'); 
     return false; 
    } 

    }); 
    }); 

http://jsfiddle.net/t99mU/10/

+0

非常感謝老兄! @BryanElliott,這幾乎是我所需要的。我只做了一些調整,代碼運行得很好。 –

+0

太棒了!很高興我能幫上忙! :) – MElliott