2012-06-28 68 views
1

//如何檢查是否在選擇框中沒有明確選擇選項? 我使用下面的代碼,它的工作原理 但有沒有更優雅的方式來檢查是否沒有選項在選擇框中顯式選擇,而不使用jQuery?檢查沒有選項在選擇框中顯式選擇,而不使用jQuery?

// This function is called onclick or onchange a select in the submitting form 
    function getplano(aaaooo){ 
    var esepen = document.getElementById('esEpendysi'); 
    var exepen=document.getElementById('exEpendysi'); 
    // (esEpendysi and exEpendysi are two other selects in the submitting form) 
    try{ 
    var esepval = esepen.options[esepen.selectedIndex].innerHTML; 
    // or ////~ var esepval = esepen.options[esepen.selectedIndex].text; 
    } 
    catch(e){ 
    // alert(e.name + "\n" + e.message) 
    //When there is not a selected value the error thrown is: 
    // NS_ERROR_DOM_INDEX_SIZE_ERR 
    //Index or size is negative or greater than the allowed amount 
    } 
    try{ 
     var exepval = exepen.options[exepen.selectedIndex].innerHTML; 
    } 
    catch(e){ 
    // alert(e.name + "\n" + e.message) 
    } 
    if(esepval && exepval) { 
    alert(aaaooo +'&esepen='+esepval+'&exepen='+exepval); 
//example: handling.php?tzapan=panel&esepen=aluminium&exepen=wood 
    } 
    else 
     alert('Please select Outside or/and Inside surface finish'); 
    } 

形式HTML是:  

<BODY > 
    <form name="" action="" method="post"> 
    <table > 
    <tr><td align=left>Outside finish:<br><SELECT size='2' name=exEpendysi id='exEpendysi' ><OPTION>aluminium</OPTION><OPTION>wood</OPTION></SELECT></td><td align=left>Interior finish:<br><SELECT size='2' name=esEpendysi id='esEpendysi' ><OPTION>aluminium</OPTION><OPTION>wood</OPTION></SELECT></td></tr> 
    <tr><td style='font-size:16px;font-weight:bold;'>fixed side<br><select size='2' id='selectplainou' name='selectplainou' onChange="getplano('handling.php?tzapan='+this.options[this.selectedIndex].innerHTML)" > <OPTION>panel</OPTION><OPTION>glass</OPTION> </select ></td> 
    <td><input type="submit" value="Submit" /></td></tr> 
    </table> 
    </form> 
    </BODY></HTML> 
+0

選擇列表中有多少個選項?爲什麼不添加「請選擇」選項,然後確保它不是所選的那個? – ManseUK

+0

二,但我沒有檢查相同的選擇,但兩個其他選擇相同的形式,我不想惹惱已經選擇他們的用戶。 –

+0

如果用戶看到某個選項已被選中,他可能會接受該選項,而無需再次明確選擇該選項。你無法在代碼中知道。 – pimvdb

回答

0
function getplano(aaaooo) { 
    var esepen = document.getElementById('esEpendysi'); 
    var exepen = document.getElementById('exEpendysi'); 

    // These two will return true if it's the default value 
    // Else, it returns false. 
    var esepenSelected = esepen.options[ esepen.selectedIndex ].value === "default option"; 
    var exepenSelected = exepen.options[ exepen.selectedIndex ].value === "default option"; 

    // Since we have these two variables, we can elegantly use: 
    if (!esepenSelected && !exepenSelected) { 
     // do something 
    } 
} 

這就夠了優雅?

+0

我添加表格html –

+2

[V qrsvavgryl qba'g haqrefgnaq jung lbh whfg fnvq。 Pna lbh或zber rkcyvpvg?](http://www.rot13.com) –

+0

此代碼無法按預期工作。我添加了表單的html來幫助測試 –

相關問題