select标签 禁止选择但又能通过序列化form表单传值到后台

  前言

  项目开发中,我们可能会碰到这样的需求:select标签禁止选择但又能通过序列化form表单传值到后台,但是当我们使用disabled="disabled"时发现,无法序列化form获取到select标签的值;当我们使用readonly="readonly"发现,我们还是能展开下拉框并选择值,这时候我们应该怎么实现这个需求呢?

 

  代码实现

  方法

  1、设置readonly="readonly",设置被禁用的页面效果

  2、设置onmousedown="return false;",设置禁止鼠标按下事件

<form id="form">
    <select id="select" name="select" class="form-control" readonly="readonly" onmousedown="return false;">
<
option value="">请选择</option>
<
option value="Y">Yes</option>
<
option value="N">No</option>
</
select> </form>

  效果

  

  如何在js动态的添加与移除这个效果呢?

//js动态添加
$("#select").attr("readonly","readonly");
$("#select").attr("onmousedown","return false;");
//js动态移除
$("#select").removeAttr("readonly");
$("#select").removeAttr("onmousedown");

  为了页面更加好看,可以设置鼠标的禁用样式:cursor: not-allowed;

$("#select").css("cursor","not-allowed");
$("#select").css("cursor","");

        

 

 

  后记

  暂时先记录到这里,后续有空再继续更新

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...