0

我有 1 个控件如下

<div>
        Country<br />
        @Html.DropDownListFor(model => model.CountryId, new SelectList(Model.CountriesList, "CountryId", "CountryName"), "Please select one", new { style = "width: 250px;" })
    </div>

我正在使用 jquery 来清空这个字段

$('#CountryId').val('');
$('#CountryId').val('0');
$('#CountryId').text('');
$("#CountryId option[value='0']").val('');
$("input[name='CountryId']").val('');

我尝试了所有的方法来清空下拉列表的值,但它们都没有帮助。

也是很重要的一点。我在课堂上的国家/地区使用必填字段验证器。所以这可能是问题所在。

请告诉我如何将下拉列表的值设置为 0;

4

5 回答 5

1

创建一个模型类,如下所示

public class Country
{
    [RegularExpression("([^0]*$)",ErrorMessage="please select country")]
    public int? Country_ID { get; set; }

    public List<SelectListItem> CountryName{ get; set; }
}

现在在您的控制器操作中编写以下代码...

    public ActionResult actionName()
    {
    Country model = new Country();
    var query = (from a in DbContext.Country
                         select new 
                         {
                             C_ID = a.ID,
                             Name = a.Name
                         }).ToList();
                model.CountryName = new SelectList(query, "C_ID", "Name").ToList();
                model.CountryName.Insert(0, new SelectListItem { Text = "--Select--", Value = "0" });

return View(model);
    }

现在像下面这样装饰你的视图

<%: Html.DropDownListFor(m => m.Country_ID, Model.CountryName, new { id = "drpCountryId", Style = "width:150px;" })%>
<%:Html.ValidationMessageFor(m => m.Country_ID, null, new { @class = "field-validation-message" })%>

我希望这可以帮助你....

于 2012-09-24T11:12:17.997 回答
0

您的选择列表看起来如何.. 它的值是否首先为 0 ?试试这个

$("#CountryId option:eq(0)").attr('selected', true)

检查这个小提琴

选择了下拉列表中的第 5 项选项

更新代码

对于选择,如果未提及该值且仅存在文本,则它将文本视为值..

所以这应该适用于你的情况

$("#CountryId").val('Please select one')​

检查更新的小提琴

于 2012-09-24T07:38:09.277 回答
0

检查这个小提琴

$("select#CountryId")[0].selectedIndex = 1;

HTML 小提琴

<select id="priority" name="priority">
<option value="0">0</option>
<option value="">-- Select Priority --</option>
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>​
于 2012-09-24T07:47:32.503 回答
0

您可以使用以下任何方法清除选定的值/设置要选择的第一个值:

$('#CountryId option').first().prop('selected', true);

或者:

$('#CountryId').find('option').prop('selected',false);
于 2012-09-24T07:47:43.743 回答
0

下面的代码将第一个选项“请选择一个”设置为值0

$("#CountryId option:eq(0)").val(0).attr("selected", true);
于 2012-09-24T07:53:59.247 回答