0

我有一个使用 ajax 显示的弹出窗口。这个弹出窗口包含一个表单,这就是它的样子。

    <form id="edit_tailored_form" name="thisisthename" method="post" action="/edittailored">
        <h4>Country</h4>
        <p>Show only records from this country.</p>
        <ul>
            <li><label>Country:</label>
                <select class="inpt1" name="country">
                       <option value="0">ALL_COUNTRIES</option>
                       <option value="1">United States</option>
                       <option value="2">France</option>
                </select>
            </li>
        </ul>
        <h4>Hashtags</h4>
        <div class="clr" style="height:10px;"></div>
        <p>Show only records under these hashtags.</p>
        <ul>
            <li><label>Hashtags:</label><input type="text" name="hashtags_select" class="hashtags_select inpt1">

                <a href="javascript:void(0);" class="add_btn" id="addhash_lst">+</a>
                <input type="hidden" class="cid" value="" />
                <div class="hashtags_list"></div></li>
            <li><label>&nbsp;</label>

                <div class="hashtags_display">
                    <ul>
                        <!-- display here the added hashtags--->
                    </ul>
                </div>
                <input type="hidden" name="hashtags" class="hashtags_hdn" value="1,3,13">
        </ul>
        <div class="clr" style="height:0px;"></div>
        <h4>Save and quit</h4>
        Save the modification and quit.
        <ul>
            <li><label class="control_label">&nbsp;</label><a href="javascript:void(0);" class="close_popup">&nbsp;</a>&nbsp;&nbsp;<input type="button" id="edit_tailored_btn" class="btn1" value="Save" /></li>
        </ul>
    </form>

在 javascript 文件中,我添加了这个动作:

$('#edit_tailored_btn').live('click', function(event) {

        event.preventDefault();
        event.stopPropagation();
        var data = $('#edit_tailored_form').serialize();
        $.ajax({
            url: '/edittailored',
            data: data + '&ajx=2',
            type: 'post',
            success: function(data) {
                $('#add_record_wrapper').html(data);
            }
        });
    })

edit_tailored_btn 代表表单中“保存”按钮的 ID。

如您所见,我序列化表单以获取其输入的数据,以便我可以使用 ajax(再次)发送它们。

我的问题是类似的序列化在 chrome 中不起作用(它在 Firefox 中起作用)。A 检查并发现它实际上不是序列化,它不起作用,但我的表单无法识别,至于alert($('#edit_tailored_form').attr('name'));显示 null。

任何想法?

4

1 回答 1

0

我找到了问题的解决方案,当弹出窗口加载时,它实际上加载到一个<div>包含在 html 表单中的表单(触发显示弹出窗口的事件的表单)......

这导致了两个html表单,一个在另一个里面,所以Chrome忽略了孩子......我没有注意这个问题。

至于 Firefox,它不会忽略任何一个。它优先考虑提交按钮是单击的表单。

谢谢您的帮助

于 2013-09-05T15:28:41.073 回答