使用序列化使用通配符选择器提交表单?

时间:2015-11-18 12:54:20

标签: jquery forms input

我在使用带有序列化的通配符选择器提交输入信息时遇到问题。在我的表单中,我设置了名称属性。

我的问题是因为我有输入,选择和隐藏字段吗?

我的代码如下:

$('[id^=editeventform_]').submit(function(){
    var evtn_edit_form_id_data = $(this).attr("id");

    var event_date_edit = $("#event_date_edit", this).val();
    var event_orig_name_edit = $("#event_orig_name_edit", this).val();
    var event_orig_tel_edit = $("#event_orig_tel_edit", this).val();
    var event_orig_email_edit = $("#event_orig_email_edit", this).val();

    if (event_title_edit == "") {
      $("#event_title_edit", this).focus();
      $("#event_title_edit", this).val("");
      $("#event_title_edit", this).css({background:"#b72a18", color:"#fff"});
      return false;
    }
    if (event_date_edit == "") {
      $("#event_date_edit", this).focus();
      $("#event_date_edit", this).val("");
      $("#event_date_edit", this).css({background:"#b72a18", color:"#fff"});
      return false;
    }

    $(this).html('<center><img src="/images/ajax-loader-cater.gif"></center>');

    var dataString = $(this).serialize();

$.ajax({
        type: "POST",
        url: "/process.php",
        data: dataString,
        success: function() {
                $(this).html('<p>Thank you your event has successfully been edited.</p>');
            setTimeout(function() {
                $(window.location).attr('href', '/members/catering-activity.php');
            }, 3500);
        }
 });
return false;
});

提交表单时,警报“dataString”不返回任何信息?

我是Jquery的初学者,无法找到我的代码的问题以及为什么它不会返回任何输入值。

1 个答案:

答案 0 :(得分:0)

我做了一些测试并得出以下结论:

  1. 您没有发布您的HTML,但我猜您的输入字段会遗漏名称属性:

    <input id="event_date_edit" name="foobar" type="text" />

  2. 您需要在提交功能中添加e.preventDefault();以防止浏览器重新加载页面:

    $('[id^=editeventform_]').submit(function(e){ e.preventDefault(); //...

  3. 据我所知,您尚未定义变量event_title_edit

  4. 我希望这会有所帮助。