select标签中设置只读几种解决方案

需求:只读但需要传递到后台。

readonly 设置对select标签无效!

 

方式一、直接在标签中用js方法设置不可变更(推荐)

<select readonly="readonly" onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;">

 

方式二、先利用disabled 属性显示,但需要在表单提交前移除disabled属性。否则无法向后台传递该参数

<select id="pid"readonly="readonly" disabled="disabled" /> //用此方法时,提交表单前移除disabled属性,$("#pid").removeAttr("disabled");

 

方式三、点击触发js事件时禁用

<select id="pid" readonly="readonly" /> //点击时触发禁用

  

$(function(){
    $("#pid").click(function(){
        return false;
    });   
}

 

方式四、利用disabled 和 隐藏的输入框来传值(推荐)

<select readonly disabled="disabled" />

  

<input name="pid" value="真实需要传递的参数值" type="hidden" class="hidden" >
posted @ 2020-01-10 12:57  纭卿殇  Views(14908)  Comments(0Edit  收藏  举报