2

我有一个下拉列表如下..

<select name="school"><option value="None" selected>None</option>
<option value="DeSoto">DeSoto</option>
<option value="Hillsboro">Hillsboro</option>
<option value="Grandview">Grandview</option>
<option value="Festus">Festus</option>
<option value="R-7">R-7</option>
<option value="Home-Schooled">Home-Schooled</option>

如果在数据库中输入的联系人碰巧住在下拉列表中未列出的学区,则数据输入人员必须将学校添加到数据库中。如何在列表末尾添加一个选项,以允许最终用户输入学校名称。

我可以处理 PHP 代码来处理条目,我只需要一些关于如何完成将下拉列表转换为用户输入字段或其他解决方案的想法。谢谢您的帮助!

4

5 回答 5

4

您可以使用组合框:输入+下拉列表。

http://javascript.about.com/library/blcombo.htm

演示:http: //jsfiddle.net/P39W5/

或者您可以动态添加一个输入框:

http://jsfiddle.net/EMEVL/

JS:

$(document).ready(function() {
    $('#newSchool').hide();
    $("#schoolContainer").change(function() {
        var val = $(this).val();      
        if (val == 'Other School') {
            $('#newSchool').show();
        } else {
            $('#newSchool').hide();
        }
    }).change();
});

HTML:

School: <select name="school" id="schoolContainer">
    <option value="None" selected>None</option>
    <option value="DeSoto">DeSoto</option>
    <option value="Hillsboro">Hillsboro</option>
    <option value="Grandview">Grandview</option>
    <option value="Festus">Festus</option>
    <option value="R-7">R-7</option>
    <option value="Home-Schooled">Home-Schooled</option>
    <option value="Other School">Other School</option>
</select>

    <input type="text" id="newSchool"/>
    <input type="button" id="otherschool" value="Insert"/>
于 2012-08-31T23:18:34.790 回答
1

jQuery 帮助:

$("select[name='school']").change(function() {
    var val = $(this).val();
    if(val == 'notlisted') {
        $('input[name="otherschool"]').show();
    } else {
        $('input[name="otherschool"]').hide();
    }
}).change();

然后在 HTML

<input type="text" name="otherschool" style="display:none" />
于 2012-08-31T23:16:53.980 回答
0

添加另一个<option>值为 other 的字段,当用户选择它时,他们可以在输入框中输入学校名称。

于 2012-08-31T23:16:17.227 回答
0

为什么在此下拉列表旁边没有添加按钮?在下拉列表末尾添加条目似乎并不直观。作为用户,我什至不展开下拉列表,只是滚动浏览当前值。

于 2012-08-31T23:17:07.497 回答
0

这里是这样的:

$(document).ready(function(){

    $("#addSchool").click(function(){
    $("#schoolContainer").append('<option value="' + $("#newSchool").val() + '">' + $("#newSchool").val() + '</option>');
    });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="school" id="schoolContainer">
    <option value="None" selected>None</option>
    <option value="DeSoto">DeSoto</option>
    <option value="Hillsboro">Hillsboro</option>
    <option value="Grandview">Grandview</option>
    <option value="Festus">Festus</option>
    <option value="R-7">R-7</option>
    <option value="Home-Schooled">Home-Schooled</option>
</select>
    
    <input type="text" id="newSchool"/>
    <input type="button" id="addSchool" value="Insert"/>

http://jsfiddle.net/damian_silvera/NcpKp/

于 2012-08-31T23:26:02.753 回答