我遇到了这个问题,我真的不知道为什么它不起作用。
如果我在bootstrap的popover中使用这个代码,它可以工作,但是一旦我在popover中使用它,它就不再起作用了。我的意思是如果表单是从popover提交的,它就像一个普通的表单,收取新的页面而不是像AJAX脚本那样。
$("#share-popover").submit(function(){
//get the url for the form
var url=$("#form_search").attr("action");
alert($("#search-value").val());
//start send the post request
$.post(url,{
formName:$("#search-value").val(),
other:"attributes"
},function(data){
if(data.responseCode==200 ){
$('#output').html(data.greeting);
$('#output').css("color","red");
}
else if(data.responseCode==400){ //bad request
$('#output').html(data.greeting);
$('#output').css("color","red");
}
else{
alert("An unexpeded error occured.");
}
});
return false;
});
按钮:
<button id="share-dropdown" style="margin-right:5px" class="btn btn-warning pull-right" type="button" rel="popover" data-placement="bottom" data-html="true"><i class="icon icon-plus icon-white"></i> Share</button>
Js:
$('#share-dropdown').popover({
html : true,
content: function() {
return $("#share-popover").html();
}
});
内容的HTML:
<div id="share-popover" style="display: none">
<form id="form_search" action="{{ path('weezbook_site_ajax_search') }}" method="POST">
<input id="search-value" type="text" value="Book title, authors, isbn" class="share-input" name="search-value" />
<input type="submit" />
</form>
我在Symfony2上使用它,我的控制器返回JSON。
我真的不明白为什么它在盒子外工作而不在里面......
答案 0 :(得分:0)
当您使用json
时,您必须在post
这样指定
$.post(url,{ data: something },function(data){some process},
'json');// define the type as json
答案 1 :(得分:0)
修改强>
我没有尝试,但是.submit()
替换$(document).on('submit', '#share-popover', function() {});
应该有效,因为在渲染dom之后加载了内容,我当时无法使用.submit()。 / p>
我真的不知道为什么,但用另一个替换.submit()方法可以解决问题。
以下是我所做的改变:
<input id="search-value" type="text" placeholder="Book title, authors, isbn" class="share-input" name="search-value" onkeypress="return runScript(event)" />
function runScript(e) {
if (e.keyCode == 13) {
...
return false;
}
}