【问题标题】:Form not getting posted表格未发布
【发布时间】:2015-05-02 10:24:06
【问题描述】:

当我尝试点击提交按钮时,我的表单在提交时没有发布或重新加载,为什么会这样?

   <form class="form1">
     <input type="text" value="ABC"/>
     <input type="text" value="DEF"/>
     <select name="acces_specfi" class="selectpicker" data-size="10" data-style="btn-info">
                    <option value="public">public</option>
                    <option value="private">private</option>
                </select>
    <button type="submit" class="btn-print"/>

--JS--

 jQuery('.btn-print').click(function(event){
                jQuery(".form1").find(':input').each(function(){
                    if(jQuery(this).val() && jQuery(this).attr('type') !== 'hidden'){

                        jQuery.trim(jQuery(this).replaceWith('<u>'+jQuery(this).val()+'</u>'));
                    }
                    else if(jQuery(this).val()===''){
                        jQuery(this).replaceWith('________');
                    }
                });
});

---更新--

这行得通

   jQuery(".form1").find(':input').each(function(){

                    if(jQuery(this).attr('type') !== 'hidden'){
                        jQuery(this).hide();

                        jQuery(this).after('<u>'+jQuery(this).val()+'</u>');
                    }

                });

但是所有选择选项都以列表的形式显示我不知道为什么我认为因为我正在使用引导程序选择

然后选择普通文本输入效果很好

---更新-----

我用普通选择替换它我认为它工作得很好,因为引导选择添加了额外的按钮和 div 这就是导致问题的原因

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    您可以在click 事件中将submit() 函数添加到您的表单中。

    jQuery(".form1").submit();
    

    注意:你应该在replaceinput标签之前使用它。如果以后需要使用,可以保留input字段并隐藏。


    如果您不希望发生 重定向,您必须创建 async submit

    $('.form1').submit(function(e){
      e.preventDefault();
      //do some verification
      $.ajax({
        url: 'your/page/that/catch/the/request',
        data: $(this).serialize(),
        success: function(data)
        {
          //callback methods go right here
        }
      });
    });
    

    【讨论】:

    • 我不这么认为,因为当我删除 jQuery(".form1").find(':input').each(function(){....}) ;我的表格被张贴了
    • 我想以字符串的形式将它传递给 php,我想用它们的值替换我所有的输入,这可能吗?
    • @MayuriS 是的,有可能,你必须用$.ajax 制作一个POST(这是异步完成的)。这样,您无需重定向即可发送帖子并更新页面。
    • 不,我不在乎我的数据如何通过 ajax 或琐碎的 http 我只想用它们的值替换输入元素,并以字符串形式将它们放入变量中,然后我将发送它在 ajax 中或通过普通的 http post
    • @MayuriS 我想更好地了解你想要达到的目标,你能更新你的问题吗?
    【解决方案2】:

    您好,您缺少名称属性

     <input type="text" value="ABC"/>
     <input type="text" value="DEF"/>
    

    这些行应该是

     <input type="text" name="abc" value="ABC"/>
     <input type="text" name="def" value="DEF"/>
    

    【讨论】:

      【解决方案3】:

      使用以下:

      jQuery('.btn-print').click(function(event){
                      jQuery(".form1").find(':input').each(function(){
                          if(jQuery(this).val() && jQuery(this).attr('type') !== 'hidden'){
      
                              jQuery.trim(jQuery(this).replaceWith('<u>'+jQuery(this).val()+'</u>'));
                          }
                          else if(jQuery(this).val()===''){
                              jQuery(this).replaceWith('________');
                          }
                      });
          $('.form1').submit();
      });
      <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
      <form class="form1">
           <input type="text" value="ABC"/>
           <input type="text" value="DEF"/>
           <select name="acces_specfi" class="selectpicker" data-size="10" data-style="btn-info">
                          <option value="public">public</option>
                          <option value="private">private</option>
                      </select>
          <input type="submit" class="btn-print" value='Submit'/>
      </form>

      【讨论】:

        猜你喜欢
        • 2015-09-17
        • 2021-07-26
        • 1970-01-01
        • 2012-11-23
        • 1970-01-01
        • 2012-12-30
        • 1970-01-01
        • 2021-03-01
        • 2015-01-18
        相关资源
        最近更新 更多