2013-02-18 3 views
0

'action'버튼이 포함 된 div에 jQuery BlockUI 호출을 설정했습니다. Onclick,이 회색은 이중 클릭 방지 페이지입니다. 새로운 옵션이 추가되었으며 선택 상자/이동 버튼 콤보가 있습니다.- 1을 선택하면 div를 중지하는 방법은 무엇입니까?

문제는 선택 상자가 변경되어 제출 버튼을 누르기 전에 대기 화면으로 이동한다는 것입니다.

select에서 fire를 사용하지 않도록 blockui를 어떻게 타겟팅 할 수 있습니까? 안타깝게도 select name = ""영역은 동적이며 cms에서 빌드됨에 따라 지속적으로 변경되므로 select [name =] targetting을 사용할 수 없습니다. 필요한 경우 수업을 제공 할 수 있습니다. '다른 사람'은 현재 내가 가진 전부입니다. 기본적으로 선택 부분을 클릭하면 아무것도 수행하지 않으려면 if top 부분을 작성해야합니다.

$('.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 개 이동에 제출 투기에 의한 허락 된 없습니다. 따라서 제출하려면 버튼이 있어야합니다. c. 이러한 이름 알파는 동적이며 모든 페이지로드시 변경되므로 대상 지정에는 쓸모가 없음을 기억하십시오.

답변

0

type="submit"input 요소를 클릭했을 때 BlockUI 오버레이 만 트리거하려는 경우 선택기에 더 구체적으로 지정할 수 있습니다.

이것은 actionbuttons 클래스 컨테이너의 아이 (반드시 직접하지 않음)입니다 type="submit" 어떤 input 요소의 동작을 트리거 할

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

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

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 . 그런 다음 오버레이를 가져 오는 콜백 함수 내부에 어떤 로직도 필요하지 않습니다. 또한 전화를 verify으로 바로 이동할 수도 있습니다.

jsfiddle

+0

는 모든 선택을 제외하고, 오버레이를 트리거해야한다고 거기 링크, 다른 버튼, 등이 있습니다. 나는 명령과 클래스로 해결 방법을 알아 냈다. $ { 'actionbuttons'} children(). not (". viewmenu") {function} { \t $ .blockUI ({메시지 : '

생각 ...

'}}}) ; – briansol