2012-05-16 31 views
0

我在jQuery ajax请求中遇到问题。一旦我发送请求使用ajax作为后,甚至得到。它不断添加NaNundefiened。 clearNaNgreenjQuery Ajax请求问题

[JavaScript的];

$("#btnSubmit1").click(function() { 
    var criminality = $('select#criminality option:selected').val(); 
    var color1 = $("select#color1 option:selected").val(); 
    var business = $("select#business option:selected").val(); 
    var color2 = $("select#color2 option:selected").val(); 
    var civil = $("select#civil option:selected").val(); 
    var color3 = $("select#color3 option:selected").val(); 
    var bankruptcy = $("select#bankruptcy option:selected").val(); 
    var color4 = $("select#color4 option:selected").val(); 
    var education = $("select#education option:selected").val(); 
    var color5 = $("select#color5 option:selected").val(); 
    var candidateID = $("input#choosecandidate_hidden").val(); 

    var dataString = 'criminality='+ criminality + '&color1=' + color1 + '&business=' + business 
         + '&color2='+ color2 + '&civil=' + civil + '&color3=' + color3 + '&bankruptcy=' + bankruptcy+ 
         + '&color4='+ color4 + '&education=' + education + '&color5=' + color5+ 
         + '&report_status='+ report_status + '&color9=' + color9+'&report_form_name=report_form1&candidate_id='+candidateID; 
         //alert (dataString);return false; 

    $.ajax({ 
     type: "POST", 
     url: "report_submit_ajax.php", 
     data: dataString, 
     success: function() { 
      alert('Form has been sumbmitted successfully'); 
     } 
    }); 

    return false; 
}); 

[HTML]

<form id="report_form1" class="form" name="report_form"> 
    <fieldset> 
     <legend>Executive Summary:</legend> 
     <table cellspacing="10" border="0"> 
      <tbody> 
       <tr> 
        <td><b>Criminality/Integrity Check</b></td> 
        <td><select id="criminality" name="criminality"> 
          <option value="clear">Clear</option> 
          <option value="verified">Verified</option> 
          <option value="verified_des_mijor">Verified with Major Discrepancy</option> 
          <option value="verified_des_minor">Verified with Minor Discrepancy</option> 
         </select></td> 
        <td><select id="color1" name="color1"> 
          <option style="color: green;" value="green">Green</option> 
          <option style="color: blue;" value="blue">Blue</option> 
          <option style="color: yellow;" value="yellow">Yellow</option> 
          <option style="color: red;" value="red">Red</option> 
         </select></td> 
       </tr> 
       <tr> 
        <td><b>Highest Education Check</b></td> 
        <td><select id="education" name="education"> 
          <option value="clear">Clear</option> 
          <option value="verified">Verified</option> 
          <option value="verified_des_mijor">Verified with Major Discrepancy</option> 
          <option value="verified_des_minor">Verified with Minor Discrepancy</option> 
         </select></td> 
        <td><select id="color5" name="color5"> 
          <option style="color: green;" value="green">Green</option> 
          <option style="color: blue;" value="blue">Blue</option> 
          <option style="color: yellow;" value="yellow">Yellow</option> 
          <option style="color: red;" value="red">Red</option> 
         </select></td> 
       </tr> 
       <tr> 
        <td><b>Second Profession Reference Check</b></td> 
        <td><select id="employment_check_2" name="employment_check_2"> 
          <option value="clear">Clear</option> 
          <option value="verified">Verified</option> 
          <option value="verified_des_mijor">Verified with Major Discrepancy</option> 
          <option value="verified_des_minor">Verified with Minor Discrepancy</option> 
         </select></td> 
        <td><select id="color7" name="color7"> 
          <option style="color: green;" value="green">Green</option> 
          <option style="color: blue;" value="blue">Blue</option> 
          <option style="color: yellow;" value="yellow">Yellow</option> 
          <option style="color: red;" value="red">Red</option> 
         </select></td> 
       </tr> 
       <tr> 
        <td><b>Report Status</b></td> 
        <td><select id="report_status" name="report_status"> 
          <option value="clear">Clear</option> 
          <option value="verified">Verified</option> 
          <option value="verified_des_mijor">Verified with Major Discrepancy</option> 
          <option value="verified_des_minor">Verified with Minor Discrepancy</option> 
         </select></td> 
        <td><select id="color9" name="color9"> 
          <option style="color: green;" value="green">Green</option> 
          <option style="color: blue;" value="blue">Blue</option> 
          <option style="color: yellow;" value="yellow">Yellow</option> 
          <option style="color: red;" value="red">Red</option> 
         </select></td> 
       </tr> 
      </tbody> 
     </table> 
    </fieldset> 
    <input id="btnSubmit1" type="button" name="btnSubmit1" value="Update"> 
</form> 

这里是确切的职位我得到

bankruptcy undefinedNaNundefined 
business undefined 
candidate_id 78 
civil undefined 
color1 green 
color2 undefined 
color3 undefined 
color5 greenNaNundefined 
color6 undefined 
color8 undefinedNaNclear 
color9 green 
criminality clear 
education clear 
employment_check_2 clearNaNgreen 
professional_reference undefined 
report_form_name report_form1 

正如你所看到的,它会产生这样的有趣的话。任何解决方案

+2

哇,你需要寻找到[jQuery.serialize()](http://api.jquery.com/serialize/)的d [jQuery.serializeArray()](http://api.jquery.com/serializeArray/)。 – jaredhoyt

+0

此外,对于select元素,您不需要执行'$('select option:selected')。val()'来获取选定的值。你只需要做'$('select')。val()'。 – jaredhoyt

+1

有您发布的整个HTML?我找不到选择#COLOR2,COLOR3 etc.If他们不存在,你会得到未定义的错误 –

回答

1

你选择返回比您预期的不同模式的元素。因为在某些情况下,您可能会得到未定义的值,或者由于多个值的组合方式,NaN(非数字)值有时会并置。

我强烈建议您使用JavaScript调试器在浏览器中(通常由F12可用),并检查每$(....)表达的结果获得。

1

检查在这里... http://jsfiddle.net/laupkram/5RF6j/

一些元素缺少你给了我们什么,所以它创造未定义

+0

感谢。我正在尝试使用jQuery.serializeArray()。 @ jaredhoyt建议,它更加易如反掌。它节省了我很多时间 – Akram

+0

ok goodluck amigo ^^ –

0
$("#btnSubmit1").live('click', function (e) { 
      e.preventDefault(); 

      alert($('form#report_form1').serialize()); 

      $.ajax({ 
       type: "POST", 
       url: "report_submit_ajax.php", 
       data: $('form#report_form1').serialize(), 
       success: function() { 
        alert('Form has been sumbmitted successfully'); 
       } 
      }); 

      //return false; 
     });​ 

现场的贴子看到此链接:http://jsfiddle.net/nanoquantumtech/5RF6j/1/

为参考看到此链接:http://api.jquery.com/serialize/