提交特定提交按钮

时间:2013-11-17 15:26:16

标签: jquery html form-submit

在我的HTML代码中,有几个提交按钮,我已经为提交按钮分配了一个特定的ID,但是当它转到jQuery部分时,只有第一个提交按钮有效。其他提交按钮返回false。

我正在使用的HTML(在PHP文件中);

$sid = intval($sid);
$comment_box = '
    <div class="comment_box_tcat"><a href="javascript:void(0);" id="comment_box" sid="'.$sid.'">Post Comment</a></div>
    <div id="comment_box_show_'.$sid.'" style="display: none;">
        <div id="latest_comments">'.get_latest_comments($sid).'</div>
        <form action="" method="post">
            <textarea name="message" id="comment_message" maxlength="'.$mybb->settings['mystatus_chars'].'" value="" style="resize: none;" cols="35" rows="3" tabindex="4"></textarea>
            <input type="hidden" name="sid" id="sid" value="'.$sid.'" />
            <input type="hidden" name="uid" id="uid" value="'.$mybb->user['uid'].'" />
            <input type="submit" name="submit" value="Submit" tabindex="5" id="comment_submit_'.$sid.'" onClick="return false;">
        </form>
    </div>';

和jQuery是;

// Post Comment
jQuery(document).ready(function($)
{
    $('input[id^="comment_submit_"+sid]').on('click', function ()
    {
        var message = $("#comment_message").val();
        var sid = $("#sid").val();
        var uid = $("#uid").val();

        if (!message)
        {
            alert('Message is missing.');
            return;
        }

        $.ajax(
        {
            type : "post",
            dataType: "html",
            url : "status.php?action=do_post_comment",
            data : "message="+message+"&uid="+uid+"&sid="+sid,
            success : function(response)
            {
                $('#latest_comments').html(response).show();
                document.getElementById('comment_message').value = '';
                document.getElementById('comment_message').focus();
            }
        });
        return false;
    });
});

1 个答案:

答案 0 :(得分:3)

您的选择器必须是:$('input[id^="comment_submit_"'+sid+']'),它使用sid变量。在使用上述选择器之前,您不会定义该变量,因此您当前的架构存在缺陷。

此外, id应该是唯一的,但是你在循环中重复使用它们,这将会抛弃所有内容。你的大多数代码只是一团糟而已。理解html和javascript。

您的问题是 X/Y problem。我建议你在SO上另外发一篇文章来描述你的项目(你想要做什么以及为什么要做?)并解释你尝试过的东西(比如这个例子),以便人们知道你至少试图想出一些东西。然后,人们可以就您的问题找到一个好方法的建议,以帮助您开始建立良好的基础。