[JavaScript]設定Select、Input標籤,只可讀不可修改且可傳值

摘要:[JavaScript]設定Select、Input標籤,只可讀不可修改且可傳值

在想讓使用者只可讀取不能修改的情況下
input標籤,是使用readonly
而select標籤,則是用disabled(禁用下拉列表)
 
但是,在送出表單傳值的時候,卻不能傳遞出去
找到了以下資料,可參考看看:http://www.k8h.net/a/wangyejishu/2014/0629/60.html
 
當屬性設置為「disabled」,提交表單時,select的值無法傳遞
解決方法:提交前移除disabled屬性
JavaScript作法:$("#test").removeAttr("disabled");
jQueryy作法:$("#test").attr("disabled","disabled");
 
實作了一個簡易範例,有興趣的讀者可以在自己的環境執行看看(以Select為範例)
 
test.php

<!DOCTYPE html>
<html>
    <head>
        <title>readonly</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf8">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script>
            function check_select(form){
            if(confirm("確定要送出此資料嗎?")){
                $("#in_name").removeAttr("disabled");
                $("#in_name2").removeAttr("disabled");
                return true;
            }else{
                return false;
            }
            }  
        </script>
    </head>
<body>
    <form id="in_form" name="in_form" method="post" action="./test.inc.php" onsubmit="return check_select()">
        名稱1:
        <select id="in_name" name="in_name" disabled >
            <option value="">請選擇名稱</option>
            <option value="GOOD_IDEA" selected >GOOD IDEA</option>
        </select>
        <br /><br />
        名稱2:
        <select id="in_name2" name="in_name2" disabled >
            <option value="">請選擇名稱</option>
            <option value="GOOD_IDEA2" selected >GOOD IDEA2</option>
        </select>
        <br /><br />
        <input id="submit" name="submit" type="submit" value="確定送出" />         
    </form>
</body>
</html>

test.inc.php


<?php
 header("Content-Type:text/html; charset=utf-8");
 $in_name=$_POST['in_name'];
 $in_name2=$_POST['in_name2'];
 echo "名稱1的值:".$in_name."<br />";
 echo "名稱2的值:".$in_name2."<br />";
?>