0

我有以下代码:

  <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>

当我提交表单时,我没有看到警报……我错过了什么?

谢谢,

4

3 回答 3

4

您需要删除突兀的 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 解决方案,那么您会想要做一些不同于表单帖子的事情,例如 ajax 帖子

<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-14T03:35:18.837 回答
1

你为什么不做类似的事情

<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);

});

演示:小提琴

如果您想将参数用作 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-14T03:39:58.250 回答
0

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

 <a href="#" onclick="document.getElementById('search-form').submit();">
于 2013-03-14T03:38:51.753 回答