如何在使用Ajax提交后显示新的输入数据

时间:2017-05-29 06:07:14

标签: php html ajax

请帮我解决这个问题! 提交后,新的输入变量不会显示在div中。

这是我的剧本:

    $('#addVariable').validate({
        rules: { variable: {required:true}} ,
        submitHandler: function(form) {
                var id = $('input[name="compid"]').val();
                var name = $('input[name="variable"]').val();
                $.ajax({
                    url:"http://localhost/scorecard/wp-
    content/themes/twentyseventeen/ajax/submit.php?function=addVariable",
                    type:"post",
                    data:{ company_id:id , variable_name:name},
                        success: function(data){
                            if(name === " "){
                                alert(data);
                            }
                            else{
                            alert('success');
                            $('input[name="variable"]').val(' ')
                            }
                        }
                });
        }   
     });

这是我的表单代码:

    <form id="addVariable">
                    <input type="hidden" id="hidId" name="compid">
                    <input type="text" class="variable" name="variable" 
    value="">
                    <input type="submit" class="btnVar" value="" onclick="">

                    <!--<input type="button" class="remove" value="-">-->
                  </form>

3 个答案:

答案 0 :(得分:1)

我认为问题是以下部分

variable_name:name},
success: function(data){
if(name === " "){
alert(data);
}

如果我是正确的,这里调用的闭包不能访问name变量,因为它在不同的范围内。

如果要使用name变量,请将其作为参数发送或将其绑定到函数。尝试:

success: function(data){
    if(name === " "){
        alert(data);
    }
    else{
        alert('success');
        $('input[name="variable"]').val(' ')
    }
}.bind(name) // bind name to the function

答案 1 :(得分:1)

  1. 根据您的代码,您希望在ajax成功响应后将输入<input type="text" class="variable" name="variable" value="">的值更改为空字符串。这是对的吗?
  2. 无论如何,您可以从控制台调试它,看看您是否真的得到了成功的回复。

    success: function(data){
       if(name === " "){
          //alert(data);
          console.log('data ', data); 
       }
       else{
         //alert('success');
         console.log('success'); 
         $('input[name="variable"]').val(' ')  
       }
    }
    

答案 2 :(得分:0)

请尝试以下代码:

if(name){
$('input[name="variable"]').val(name)
}
else{
alert('name is not available');
}