2011-10-20 60 views
1

我有兩個選擇與HTML代碼的幾個選項:如何更改從一個選擇到另一個?

<select name="t" id="t"> 
<option value="0">Overall</option> 
<option value="1">t_name</option></select> 

<select name="m" id="m"> 
<option value="0">back to Overall</option> 
<option value="1">m_some</option></select> 

我的問題是如何給力變化值從第一選擇名爲「T」爲「0」(總體)只的情況下,當用戶選擇值「0」(回到總體)在第二個選擇名爲「m」?並在最後提交表格。

- 編輯 -

現在因爲建議我嘗試做這樣的:

<script> 
$(function(){ 
    $('#m, #t').change(function(){ 
    if($('#m').val() == '0') 
     $('#t').val('0').change(); 
     $('form#myform').submit(); 
    }); 
}); 
</script> 

而且這個腳本提交當我改變選擇「M」或「T」的形式每次,除了改變時的情況選擇「m」爲值「0」(腳本僅以正確的方式將「t」更改爲「0」而不提交)。爲什麼?

回答

0

您應該如下使用ID,因爲它們更容易進行DOM搜索。

<select name="t" id="t" onchange="this.form.submit();"> 
<option value="0">Overall</option> 
<option value="1">t_name</option></select> 

<select name="m" id="m" onchange="this.form.submit();"> 
<option value="0">back to Overall</option> 
<option value="1">m_some</option></select> 

<script> 
$(function(){ 
    $('#m, #t').change(function(){ 
    //don't forget to trigger the change event 
    if($('#m').val() == '0') 
     $('#t').val('0').change(); 

     $('form#form_id').submit(); 
    }); 
}); 
</script> 
+0

好的,我發現了一個錯誤。當我刪除'.change()'一切工作完美。 – Lucas

0
$('select[name="m"]').change(function() { 
    if($(this).val() == '0') { 
     $('select[name="t"]').val('0'); 
    } 
}); 

除此之外,你應該使用jQuery來設置的,而不是通過內聯JS這樣的事件電平變化:

$('select[name="t"], select[name="m"]').change(function() { 
    $(this).closest('form').submit(); 
    // if you do not need any jquery submit events, 
    // you can also use this.form.submit(); 
}); 

的演示中看到http://jsfiddle.net/ThiefMaster/NfVQZ/

+0

不要忘記觸發更改事件。只是改變價值不會觸發事件! – Hailwood

+1

不需要假設元素的形式相同,除非您想提交表單兩次。如果他們是不同的形式,你是對的。 – ThiefMaster

0

你可以做這樣的事情:

$(function(){ 
    $('[name="t"],[name="m"]').change(function(){ 
     if($(this).attr('name')=='m') && $(this).val()=='0'){ 
      $('[name="t"]').val('0'); 
     } 

     $(this).closest('form').submit(); 
    }); 
}); 
1
<html> 
<body> 
    <form name="form1" id="form1"> 
    <select id="t" name="t" onchange="this.form.submit();"> 
     <option value="0">Overall</option> 
     <option value="1">t_name</option> 
    </select> 
    <select name="m" onchange="setposition(this.value)"> 
     <option value="0">back to Overall</option> 
     <option value="1">m_some</option> 
    </select> 




    </form> 
</body> 
</html> 

<script language="javascript" type="text/javascript"> 

    function setposition(svalue) { 
     if (svalue == "0") { 
      document.getElementById("t").options[1].selected = true; 
     } 
    } 
</script>`enter code here` 
相關問題