使用jquery $ .ajax提交表单 - 首先提交oly

paw*_*wel 1 javascript ajax jquery

我在提交AJAX表单方面遇到了问题 - 使用本教程.

我的表单在div#upform,当我试图通过$.ajax它提交任何一个时,只提交第一个,这里是代码:

$(function() {  
    $(".button").click(function() {  
        var txt = $(".tekst#test").val();  
        var dataString = 'tekst='+ tekscior;

        $.ajax({  
            type: "POST",  
            url: "upload/base",  
            data: dataString,  
            success: function() {  
                $('#upform').html("<div id='message'></div>");  
                $('#message').html("<h2>described!</h2>")  
                    .append("<p>thanks!</p>")  
                    .hide()  
                    .fadeIn(1500, function() {  
                        $('#message').append("<img id='checkmark' src='http://artivia-dev2/i/check.png' />");  
                    });  
            }  
        });  
        return false; 
    });  
});  
Run Code Online (Sandbox Code Playgroud)

这是我的表格:

<!-- ONLY THIS ONE IS SUBMITTED, EVEN WHEN I'M SUBMITTING THE SECOND ONE! -->
<div class="slidingDiv">
    <div id="upform">
        <form name="contact" action="">  
            <input type="text" value="TESTFORM" class="tekst" id="test">
            <input type="submit" name="submit" class="button" id="submit" value="Send" />
        <form>
    </div> 

    <div class="slidingDiv">
        <div id="upform">
            <form name="contact" action=""> 
                <input type="text" value="TESTFORM" class="tekst" id="test">
                <input type="submit" name="submit" class="button" id="submit" value="Send" />
            <form>
        </div> 
Run Code Online (Sandbox Code Playgroud)

@@ UPDATE

问题,当我提交一个表单时 - 它很棒 - 但是在这个提交之后我想提交第二个 - 数据正确提交,但成功消息都以两种形式刷新,这就是修复,我已经试过了使用,但它不起作用:

    $.ajax({  
          type: "POST",  
          url: "upload/base",  
          data: dataString,  
          success: function() {  

        upform.html("<div class='message'></div>");  

             var mess =  $(this).closest('.message');

             mess.html("<h2>Described</h2>")  
            .append("<p>Thanks!</p>")  
            .hide()  
            .fadeIn(1500, function() {  
            mess.append("<img id='checkmark' src='http://ar-dev2/i/check.png' />");  
            });  


          }  
        }); 
Run Code Online (Sandbox Code Playgroud)

the*_*dox 6

首先,您不应该id对多个元素使用相同的元素.而不是你可以使用classnamedata属性.

$(".button").click(function() {  

   var upform = $(this).closest('.upform'); // keep reference of upform

    var txt = $(this).prev(".tekst").val();  // this will retrieve the value of input
                                             // nearest to the button

    var dataString = 'tekst='+ tekscior;

    ......

    $.ajax({
      type: "POST",  
      url: "upload/base",  
      data: dataString,
      success: function() {
        upform.html();
        .....
      }
    });
});
Run Code Online (Sandbox Code Playgroud)

var txt = $(".tekst#test");选择器问题:

它已经从顶部开始搜索,当它找到匹配时它会停止旅程并返回值,你总是得到第一个值.如果你使用

var txt = $(".tekst");没有id,你将面临同样的问题.