我有以下代码:
<form action="" id="search-form">
<fieldset>
<div class="rowElem">
<input type="text">
<a href="#" onClick="document.getElementById('search-form').submit()">
<div>Search</div>
</a></div>
</fieldset>
</form>
<script>
$(document).ready(function() {
$('#search-form').submit(function(event){
event.preventDefault();
alert("test");
});
});
</script>当我提交表单时,我看不到警报...我遗漏了什么?
谢谢,
发布于 2013-03-14 11:39:58
你为什么不这样做呢?
<form action="" id="search-form">
<fieldset>
<div class="rowElem">
<input name="query" type="text" /><br />
<a class="search" href="#">Search</a>
</div>
</fieldset>
</form>和
var form = $('#search-form');
$('.search', form).click(function(event){
event.preventDefault();
var query = $('input[name="query"]', form).val();
alert("test: " + query);
});演示:Fiddle
如果您想使用params作为ajax请求的一部分,您可以这样做
var form = $('#search-form');
$('.search', form).click(function(event){
event.preventDefault();
var params = form.serialize();
alert("test: " + form.serialize());
$.ajax({
url: '...',
data: params,
....
})
});发布于 2013-03-14 11:35:19
您需要删除突出的onclick事件并绑定到链接。
你不能在提交后提醒,因为这会执行你给表单的任何动作(很可能会让你离开页面。如果你坚持这样做,下面的方法将会起作用。
<form action="" id="search-form">
<fieldset>
<div class="rowElem">
<input id="name" type="text"></input>
<a href="#" id="search" >Search</a>
</div>
</fieldset>
</form>
<script>
$(document).ready(function() {
$('#search').bind('click', function () {
// Alert the name BEFORE you do the form post
alert($('#name).val());
$('#search-form').submit(function(event){
});
});
});
</script>这里有一个可用的JSFiddle示例:http://jsfiddle.net/7jqUF/5/
相反,如果您想要一个AJAX解决方案,那么您应该做一些不同于表单post的事情,比如ajax post
<script>
$(document).ready(function() {
$('#search').bind('click', function () {
// Alert the name BEFORE you do the form post
alert($('#name).val());
$.post('/ServerUrl/method', { name: $('#name').val() });
});
});
</script>发布于 2013-03-14 11:38:52
请尝试以下代码。从$(document).ready函数中删除提交代码后
<a href="#" onclick="document.getElementById('search-form').submit();">https://stackoverflow.com/questions/15400697
复制相似问题