jQuery替换我的表单中的<select>,而不是提交新数据</select>

时间:2012-07-27 09:23:05

标签: jquery

生病了我的代码:

$(function() {
$("#employeeName").keyup(function() {
    var dataString = 'find='+ $("#employeeName").val();  
    //alert (dataString);return false;
    $.ajax({
        type: "POST",
        url: "finduser.php",
        data: dataString,
        success: function(response) {
            //On success
            $("#search").html(response);
        }
    });
    return false;
 });
});

这是我搜索员工姓名的ajax

我的html看起来与此相似:

<input type='text' id='employeeName' name='employeeName'>
<select id='search' name='id'></select>
<input type='submit'>

基本上,它搜索数据库并返回<option>,其中用户的ID为值,名称为名称,例如:<option value='5'>John Doe</option>

这一切都很有效,除了当我选择一个名字并提交表单时,它不会发送该人选择的更新选项,它只是发送一个空白选择(所以$_POST['id']没有存在并抛出错误。

我还能怎么做才能做到这一点?我尝试将onchange="$('#employeeName').val($(this).val())"添加到select中,这样当他们选择一个名称时,它会更新搜索框,他们可以通过这种方式提交表单,但这无济于事。

2 个答案:

答案 0 :(得分:0)

如果$_POST['id']不存在,那么您的选项可能没有value

如果$('#search').val()产生一个整数,但是当您提交表单时它不存在,那么您的<select>不是表单的一部分,或者值在提交时更新,或者您提交了GET个请求,以便通过$_GET['id']提供您的价值。

  1. 确认您的表单具有以下属性:method="POST"
  2. 确认$('#the-form').serialize()包含“id = 5”。

答案 1 :(得分:0)

在回复中尝试以下代码:它为我工作

 $("#search option").remove(); // Remove all <option> child tags.
            $("#search").append($("<option></option>").text("All").val(""));
            $.each(responset, function(index, item) { // Iterates through a
                // collection

                $("#search").append($("<option></option>").text(item).val(item));