首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到js事件的表单提交不起作用

连接到js事件的表单提交不起作用
EN

Stack Overflow用户
提问于 2013-03-14 11:31:38
回答 3查看 111关注 0票数 0

我有以下代码:

代码语言:javascript
复制
  <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>

当我提交表单时,我看不到警报...我遗漏了什么?

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-14 11:39:58

你为什么不这样做呢?

代码语言:javascript
复制
<form action="" id="search-form">
    <fieldset>
      <div class="rowElem">
          <input name="query" type="text" /><br />
          <a class="search" href="#">Search</a>
      </div>
    </fieldset>
</form>

代码语言:javascript
复制
var form = $('#search-form');
$('.search', form).click(function(event){
    event.preventDefault();

    var query = $('input[name="query"]', form).val();

    alert("test: " + query);

});

演示:Fiddle

如果您想使用params作为ajax请求的一部分,您可以这样做

代码语言:javascript
复制
var form = $('#search-form');
$('.search', form).click(function(event){
    event.preventDefault();

    var params = form.serialize();

    alert("test: " + form.serialize());

$.ajax({
    url: '...',
    data: params,
    ....
})   

});
票数 1
EN

Stack Overflow用户

发布于 2013-03-14 11:35:19

您需要删除突出的onclick事件并绑定到链接。

你不能在提交后提醒,因为这会执行你给表单的任何动作(很可能会让你离开页面。如果你坚持这样做,下面的方法将会起作用。

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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>
票数 4
EN

Stack Overflow用户

发布于 2013-03-14 11:38:52

请尝试以下代码。从$(document).ready函数中删除提交代码后

代码语言:javascript
复制
 <a href="#" onclick="document.getElementById('search-form').submit();">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15400697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档