1

我有一个下拉列表,以简单的方式放在一起。我要做的是在选择“其他”选项时设置它,将显示一个文本框,人们可以输入他们想要的内容。如何通过实施我拥有的下拉列表来实现这一点?这是我的下拉列表代码:

<div class="frm_label">
    @Html.LabelFor(Model => Model.JobTitle)
</div>
<div class="item">
    @Html.DropDownListFor(Model => Model.JobTitle, new SelectList(
                                new List<object>{
                                    new { value = 0 , text = "Physician" },
                                    new { value = 1 , text = "Researcher" },
                                    new { value = 2 , text = "Clinical Staff" },
                                    new { value = 3 , text = "Other" },
                                },
                                "value",
                                    "text",
                                    0))
</div>
4

2 回答 2

2

用这个:

 var dependentvalue = $('#JobTitle').val();
var field = $('#freetextfield');
        if (dependentvalue === "3") {
            field.removeClass('hidden'); 
        }else{
                field.addClass('hidden');}

html是这样的:

<div class="hidden">
@Html.TextBoxFor(model => model.freetextfield) // create this property of type string
</div>

在控制器中,您可以检查下拉列表属性的值是否为另一个,然后验证此自由文本字段。

.hidden 的 css:

.hidden {
  display: none;
  visibility: hidden;
}
于 2013-09-19T15:56:41.940 回答
0

我不久前做了类似的事情,看看这个 fiddel http://jsfiddle.net/ItaySidis/QNXEZ/3/

这个想法是在选择框更改为“其他”选项时创建一个触发器,然后附加一个与选择框具有相同名称属性的新输入框,并隐藏选择并将名称更改为空字符串。

$('#jobTitle-select').change(function(){
    if($(this).val() == 3) {
        var input = $('<input type="text" name="jobTitle" id="new-jobtitle" placeholder="Enter your job title..." />');
        $(this).attr('name','').addClass('hidden');
        $('#back-to-list').show();
        $(this).parent().append(input);            
    }
});

我还为用户提供了返回并通过单击与更改事件完全相反的“返回列表”跨度从列表中选择的选项。

$('#back-to-list').click(function(){
        $('#jobTitle-select').removeClass('hidden')
        .attr('name','jobTitle')
        .find('option:first')
        .attr('selected','selected');
        $('#new-jobtitle').remove();
        $(this).hide();
    });

希望它足够清楚..玩小提琴你会明白的

于 2013-09-19T17:02:06.390 回答