在函数event.preventDefault()中传递事件后不起作用

时间:2016-07-27 11:30:28

标签: javascript jquery preventdefault

<div id="address" class="col s12">
            <div class="row">
              <form method="post" action="" id="addressDetails">
                <div class="input-field col s6">
                  <textarea id="lAddress" name = 'lAddress' minlength='20' maxlength='100' class="materialize-textarea" class="validate" required length="100"></textarea>
                  <label for="lAddress" data-error="Must be between 20 to 100 Characters">Local Address</label>
                </div>
                <div class="input-field col s6">
                  <textarea id="pAddress" name = 'pAddress' minlength='20' maxlength='100' class="materialize-textarea" class="validate" required length="100"></textarea>
                  <label for="pAddress" data-error="Must be between 20 to 100 Characters">Permanent Address</label>
                </div>
              </form>
            </div>
            <div class="row center-align">
              <button type="submit" name="submitAddress" form="addressDetails" class="waves-effect waves-light light-blue darken-1 btn updateProfile">Save Address Details</button>
            </div>
          </div>

HTML和JavaScript代码

$(document).ready(function() {
    $("button").on('click', '.updateProfile', function(event) {
        event.preventDefault();
    });
});

这是我的javascript。我简化了它,保持简短。我的event.preventDefault()无效。

2 个答案:

答案 0 :(得分:1)

您以错误的方式绑定了click处理程序。

请尝试使用此代码:

$(".updateProfile").on('click', function(event) {
    event.preventDefault();
});

答案 1 :(得分:1)

根据您的HTML标记<button>元素已经有类updateProfile,因此您的代码应如下所示:

$('button.updateProfile').on('click', function(e) {
    e.preventDefault();
});

在您的情况下,将.updateProfile作为on方法的第二个参数传递click事件,将updateProfile 内的元素绑定到 {{ 1}} {} {}}中的元素。