请帮我解决这个问题! 提交后,新的输入变量不会显示在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>
答案 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)
<input type="text" class="variable" name="variable" value="">
的值更改为空字符串。这是对的吗? 无论如何,您可以从控制台调试它,看看您是否真的得到了成功的回复。
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');
}