在Jquery中使用我的Ajax请求很难

时间:2015-04-13 07:37:09

标签: javascript jquery ajax forms

我正在尝试制作一个更改我的选择内容的ajax请求。

这是我的要求:

    $(function() {
        $("#client").change(function() {
            type: 'GET',
            url: "jsonContacts.php",
            dataType: "json",
            data: {
                q: $("#client").val()
            },
            success: function(data) {
                document.form.contactClient.options.length=0;
                document.form.contactClient.options[0]=new Option("Test", "test", true, false);
                for(var i=0; i<data.length; i++) {
                }
            }               
        });
    });

我的表格是:

<FORM name='devis' method='POST' action='ajoutDevisScript.php' id='form' onsubmit="return validateForm()" >
<p>
    <label for="client">Client</label>
    <input type='text' id='client' name='client' required>
</p>
<p>
    <label for="contactClient">Contact client</label>
    <SELECT name="contactClient" id="contactClient">
    </SELECT>   
</p>
</form>

我希望当'客户端'的文本发生变化时,请求会更改我的SELECT数据但是,我的测试选项根本不显示。

谢谢!

3 个答案:

答案 0 :(得分:1)

当你使用jQuery时,你可以这样做:

$('#contactClient').append($('<option>', {
    value: 'Test',
    text: 'test',
    selected: true
}));

Demo

答案 1 :(得分:0)

如果您使用jQuery,也可以使用它来填充选择。

        success: function(data) {
            $("#contactClient").html("");
            $("#contactClient").append("<option value='test' selected>Test</option>");
            for(var i=0; i<data.length; i++) {
            }
        } 

答案 2 :(得分:0)

收听文本框上更改事件旁边的keyup事件。你可以像

那样做
$(function() {
    $("#client").keyup(function() {
        type: 'GET',
        url: "jsonContacts.php",
        dataType: "json",
        data: {
            q: $("#client").val()
        },
        success: function(data) {
            var html = '';
            $.each(data,function(i,k){
                 html += '<option value="'+k.val+'">'+k.text+'</option>';
            });
            $('#contactClient').html(html);
        }               
    });
});

希望它对你有所帮助。