javascript - 表单提交连接到 js 事件不起作用

标签 javascript html

我有以下代码:

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

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

谢谢

最佳答案

您需要删除干扰性的 onclick 事件并绑定(bind)到链接。

提交后您无法发出警报,因为这将执行您对表单执行的任何操作(很可能会让您离开页面。如果您坚持这样做,则以下操作将起作用。

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

关于javascript - 表单提交连接到 js 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15400697/

相关文章:

javascript - 如何在单击 braintree PayPal 结帐按钮时验证自定义表单?

javascript - 动态元素上的 onclick 事件不起作用

javascript - 如何使用JavaScript控制embed标签中的音频

html - Bootstrap 类对齐

python - 如何获取 models.py 文件中外键值的最大值?

html - 矩形不居中

html - 没有当前目录的相对路径

javascript - 如何让我的背景颜色从浅蓝色逐渐变成深蓝色开始?

javascript - 具有更改 ID 的 getElementById

JavaScript 按嵌套对象降序对数组进行排序