我正在尝试通过AJAX提交表单。我将表单发送给PHP,如果有通过Json,则返回错误消息。
如果没有错误,代码运行良好。但如果不是......我无法插入错误消息。我不明白为什么。
以下是我想做的事情:
function addWishlist(){
var formdata = $("#addwishlist").serializeArray();
$.ajax({
url: "/Shawili/<?= $profile['username'] ?>/addwishlist/",
data: formdata,
type: 'POST',
dataType: 'json',
success: function(json){
if(json.valid == 'ok') {
$('#addwishlist').each(function(){
this.reset();
});
} else {
$.each( json, function( key, value ) {
$('#'+key).before('<div class="row"><div class="col-sm-offset-2 col-sm-5"><span class="label label-danger">' + value + '</span></div></div>');
});
}
}
});
}
此代码正常运行:
function addWishlist(){
var formdata = $("#addwishlist").serializeArray();
$.ajax({
url: "/Shawili/<?= $profile['username'] ?>/addwishlist/",
data: formdata,
type: 'POST',
dataType: 'json',
success: function(json){
if(json.valid == 'ok') {
$('#addwishlist').each(function(){
this.reset();
});
} else {
$.each( json, function( key, value ) {
alert(key +':'+ value);
});
}
}
});
}
此代码不是:
function addWishlist(){
var formdata = $("#addwishlist").serializeArray();
$.ajax({
url: "/Shawili/<?= $profile['username'] ?>/addwishlist/",
data: formdata,
type: 'POST',
dataType: 'json',
success: function(json){
if(json.valid == 'ok') {
$('#addwishlist').each(function(){
this.reset();
});
} else {
$('#title').html('<p>test</p>')
}
}
});
}
html表单是通过AJAX显示的,因为我正在使用制表符系统。 (当用户单击它时,每个选项卡都通过AJAX加载)JS脚本位于布局的末尾。 以下是表单的一部分:
<div id="title" class="form-group"><label class="col-sm-2 control-label" for="title">Title</label>
<div class="col-sm-4">
<input type="text" placeholder="" name="title" class="form-control"></div></div>
但是,当我使用Firebug时,我可以看到html结构中的更改,但页面中没有任何附加内容。
这是我的标签加载功能:
$('#myTabs a').click(function (e) {
e.preventDefault();
var url = $(this).attr("data-url");
var href = this.hash;
var pane = $(this);
// ajax load from data-url
$(href).load(url,function(result){
pane.tab('show');
});
});
这是Firebug截图:
答案 0 :(得分:0)
尝试先绑定另一个而不是DOM元素,如下所示:
$('#otherDivContent').find('#title').html('<p>test</p>');
#otherDivContent
是您最初在页面上的div(或其他元素)。