为什么这么做
- select标签不支持readonly属性,如果设置为disabled,则影响传值(解决方法:虽然可以在表单提交之前去掉disabled,但是我觉得麻烦)
原理
- 先保存当前被选中的值,当触发onchange事件时,就把下拉框被选中的值改为当前保存的值
具体代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>select不可修改且不影响向后端传值的解决方案</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<!--给表单设置id为"test_form"-->
<form action="" id="test_form">
<select data-selected_value="3" name="test" onchange="$(this).val($(this).data('selected_value'));alert('不可修改');">
<option value="1">1</option>
<option value="2">2</option>
<option selected value="3">3</option>
</select>
<button type="button" style="width: 50px;height: 50px" onclick="submit_form()">提交</button>
</form>
<script type="text/javascript">
function submit_form() {
//如果有值则说明不影响传值
alert($('#test_form').serialize());
}
</script>
</body>
</html>
data-selected_value的值一定是当前被选中的值
版权声明:本文为qq_45490619原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。