2013-02-18 11 views
0

我有一個jQuery BlockUI調用設置在包含「動作」按鈕的div上。 Onclick,這灰色的頁面,以防止雙擊等 我們已經推出了一個新的選項,它有一個選擇框/去按鈕組合。對div的操作 - 如何停止1選擇?

問題是,選擇框更改會導致它進入等待屏幕,然後才能點擊提交按鈕。

我該如何鎖定blockui而不選中?不幸的是,select name =「」區域是動態的,並且會隨着從cms構建而不斷變化,因此我無法使用select [name =] targetting。如有必要,我可以給它上課。 「其他」目前我所有。我需要建立如果頂部的部分基本上不做任何事情,如果它的選擇點擊。

$('.actionbuttons').click(function() { 
    if($SELECT?) 
     alert('select'); 
    } 
else{ 
     $.blockUI({ message: '<h1>thinking...</h1>' }); 
    } 
}); 

HTML:

<div class="actionbuttons"> 
    <input type="submit" name="a" value="Save" onclick="return verify(this.form);"> 
    <input type="submit" name="b" value="Close" onclick="return verify(this.form);"> 
    <select name="c" size="1" onchange="changeit();"> 
     <option selected="selected">Default</option> 
     <!-- dont do anything when clicking here --> 
    </select> 
    <input type="submit" name="d" value="Change C" onclick="return verify(this.form);"> 
</div> 

沒有,只是備案,一個onchange + 1周的舉動提出是不是因爲規範acceptible。所以該按鈕需要在d上才能提交c。請記住,這些名稱阿爾法是動態的,並且在每個頁面加載時都會發生變化,因此無法用於定位。

回答

0

如果您的目的是在點擊type="submit"input元素時只觸發BlockUI覆蓋圖,則可以更簡單地在選擇器上進行更具體的操作。

HTML

<div class="actionbuttons"> 
    <input type="submit" name="a" value="Save" /> 
    <input type="submit" name="b" value="Close" /> 
    <select name="c" size="1"> 
     <option selected="selected">Default</option> 
     <option>Other</option> 
     <!-- dont do anything when clicking here --> 
    </select> 
    <input type="submit" name="d" value="Change C" /> 
</div> 

JS

$('.actionbuttons input[type="submit"]').click(function (e) { 
    $.blockUI({ 
     message: '<h1>thinking...</h1>' 
    }); 
    verify(/* Pass in your form */); 
}); 

$('.actionbuttons select').change(function (e) { 
    changeit(); 
}); 

這將觸發對任何input元素的行爲與type="submit"是容器的孩子(不一定是直接)與actionbuttons類。然後你不需要任何圍繞調用覆蓋的回調函數內部的邏輯。另外,您也可以選擇將電話直接轉到verify

jsfiddle

+0

有聯繫,其他按鈕,並在等,一切都應該觸發覆蓋,除了選擇。 我想出了一個解決方法,用not命令和一個類。 ()。function(){ $('。actionbuttons')。children()。not(「 ; – briansol 2013-02-19 14:43:30