關於JS獲取select值的兩種實現方法


前幾天發了一篇關於javascript獲取select值的方法,后來發現有另一種實現方法,所以就都發出來比較一下:

方法一:通過獲取option標簽的value值來確定:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>select</title>
</head>
<body>
    <form id="form1" name="form1">
        <select id="s1" name="s1" onChange="printTest();"> 
            <option selected="selected" value="0" >選項一</option>
            <option value="1">選項二</option>
            <option value="2">選項三</option>
        </select>
        <input type="submit" value="button"/>
    </form>
    <script type="text/javascript">    
        function printTest() {
            var oSelect = document.getElementById('s1');
            var ind = oSelect.value;
            var val = oSelect.value;
            var tex = oSelect.options[oSelect.value].text;
            alert('ind = ' + ind + '\nval = ' + val + '\ntext = ' + tex);
        }
    </script>
</body>
</html>

這個方法需要為每個option標簽定義一個value,而且value的值應為“0 1 2…”這樣排序。

方法二:用javascript原裝的selectIndex屬性實現:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>select</title>
</head>
<body>
    <form id="form1" name="form1">
        <select id="s1" name="s1" onChange="printTest();"> 
            <option selected="selected" value="1" >選項一</option>
            <option value="2">選項二</option>
            <option value="3">選項三</option>
        </select>
        <input type="submit" value="button"/>
    </form>
    <script type="text/javascript">    
        function printTest() {
            var oSelect = document.getElementById('s1');
            var ind = oSelect.selectedIndex;
            var val = oSelect.options[oSelect.selectedIndex].value;
            var tex = oSelect.options[oSelect.selectedIndex].text;
            alert('ind = ' + ind + '\nval = ' + val + '\ntext = ' + tex);
        }
    </script>
</body>
</html>

這種方法就相對比較簡單,也不需要設置value值了。

然后再說下如何實現自定義select樣式,實現這個樣式我認為需要實現4點功能:

1.select的效果,就是點擊右邊按鈕打開下拉框,點擊下拉框內容或右邊按鈕或頁面其他位置會收回下拉框;

2.模擬select里的select屬性不要用到value值的,這里可以考慮用 li 標簽的index屬性來代替;

3.模擬select選中某項時會記錄該項value值,可以結合第二點把value值放在變量里;

4.模擬form表單里提交時會把select當前選中的option標簽的value值傳送給后台,還有復位的功能。

先寫到這,未完待續!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM