我试图阻止用户选择默认下拉菜单选项。有没有办法在下拉菜单选项中添加文本而不是值?我的代码:
<select name='test'>
<option value='default' selected='selected'>Please select the value</option>
<option value='value1'>value1</option>
<option value='value2'>value2</option>
</select>
我不希望用户选择“请选择值”选项。有更好的方法吗?
答案 0 :(得分:3)
客户端代码(javascript / HTML)可以,但这只是成功的一半。
由于您不希望用户实际选择这个“默认值”,这就是我要做的:
<option value=''>Please select the value</option>
将value
作为空字符串。然后在服务器端代码中,检查发布的值是否为空。如果您不打算使用它,那么填充任意默认值是没有意义的。
默认情况下,将根据标准浏览器行为选择第一个<option>
,因此您不需要selected
属性。您执行需要value=''
,或者浏览器可以发布<option>
的文字内容。
答案 1 :(得分:3)
你可以做到
<option value='' disabled='disabled' selected='selected'>Please select the value</option>
我假设您正在使用某些客户端验证来确保在提交时未选择此选项?这意味着他们一旦点击就无法选择它,但您需要对其进行验证。
像
这样的东西<script LANGUAGE="JavaScript">
<!--
function ValidateForm(form){
ErrorText= "";
if ( form.test.selectedIndex == 0 ) {
alert ( "Please select a value" );
return false;
}
if (ErrorText= "") {
form.submit()
}
}
-->
</script>
然后点击提交按钮
<input type="button" name="SubmitButton" value="Submit" onClick="ValidateForm(this.form)">
答案 2 :(得分:1)
您可以使用JavaScript在用户提交表单时检查所选值。如果值=“default”,则警告用户。
答案 3 :(得分:0)
<select name='test'>
<option value='default' selected='selected' enabled='false'>Please select the value</option>
<option value='value1'>value1</option>
<option value='value2'>value2</option>
</select>
答案 4 :(得分:0)
使用Html Helper时,将Select的值字段设为默认值为空
@Html.DropDownListFor(Model => Model.Value, new List<SelectListItem>() { new SelectListItem { Text = "Select", Value = "" }, new SelectListItem { Text = "Value1", Value = "Value1" }, new SelectListItem { Text = "Value2", Value = "Value2" } }, new { @required = "required"})