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

The code below sets the first option "Please select one" to value 0

$("#CountryId option:eq(0)").val(0).attr("selected", true);
于 2012-09-24T07:53:59.247 に答える
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 に答える