簡體   English   中英

jQuery - 表單仍然提交返回false

[英]jQuery - Form still submits with return false

http://jsfiddle.net/QsTfc/

由於一些奇怪的原因,即使我返回假,表單也會繼續提交。 我努力了:

$("#submitEdit").submit(function() {
    return false;
});

$("#submitEdit").submit(function() {
    event.preventDefault();
});

這就是我現在所擁有的:

<script>

$('a').click(function() {
    var parentId = $(this).closest('tr').attr('id');
    var child = $("#" + parentId).children().eq(1);
    var childText = $(child).text();
    $(child).html('<form action="<?php echo URL; ?>user/changeSettings/' + parentId + '" method="POST" id="submitEdit"><input type="text" name="' + parentId + '" value="' + childText + '" /></form>');
    console.log(childText);
});

$("#submitEdit").on("submit", function() {
    var url = $(this).attr('action');
    var data = $(this).serialize();
    alert(data);
    $.post(url, data, function(returned) {
        $(parentId + "Field").html(returned);
        return false;
    });
    return false;
});

</script>

根據您的jsfiddle演示,您的表單將添加到dinamically。 所以,你必須使用委托:

$(document).on("submit", "#submitEdit", function() {
    var url = $(this).attr('action');
    var data = $(this).serialize();
    alert(data);
    $.post(url, data, function(returned) {
        $(parentId + "Field").html(returned);
        return false;
    });
    return false;
});

的jsfiddle

你需要將你的事件參數放在你的回調函數中

$("#submitEdit).submit(function(event) {
    event.preventDefault();
});

試試這個:

$(document).on("submit", "#submitEdit", function(event) {
    event.preventDefault();
    var url = $(this).attr('action');
    var data = $(this).serialize();
    alert(data);
    $.post(url, data, function(returned) {
        $(parentId + "Field").html(returned);
        return false;
    });
});

何時使用return false以及何時使用event.preventDefault()。 你可以看一下這個問題: 我什么時候應該在jquery函數中使用return false?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM