2014-09-05 130 views
1

表单缺少一个操作url,因为JavaScript处理该操作。按提交时,窗体不会执行任何操作

最近我固定的问题与未标注提交按钮type=submit在点击提交时导致IE 6和7 not do anything ..

但最近我仍然得到投诉表格上没有做任何事情,当有人按下提交按钮。

我唯一的最后猜测就是他们禁用了javascript ... 如果有人对此有其他观点请看看。 Could be old Browsers issue, could be code issue..

的jsfiddle

http://jsfiddle.net/wn21av2y/1/

HTML

<form id="form1" name="form1" method="post" style="transition: 3s height; overflow: hidden;"> 
    <table width="100%" border="0" cellspacing="2" cellpadding="5"> 
     <tbody> 
      <tr> 
       <td width="25%" align="right">Practitioner's Full Name<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="name" type="text" required="" pattern=".{3,}"> 
       </td> 
      </tr> 
      <tr> 
       <td width="25%" align="right">Type<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <select name="type" required=""> 
         <option value="MD">MD</option> 
         <option value="OD">OD</option> 
         <option value="OTHER">OTHER</option> 
        </select> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">Street Address<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="address" type="text" required="" pattern=".{3,}"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">City<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="city" type="text" required="" pattern=".{3,}"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">State<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <select name="state" id="state" required=""> 
         <option value="AL" selected="">Alabama</option> 
         <option value="AK">STATES</option> 
        </select> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">Zip<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="zip" type="text" placeholder="12345-1234" required="" pattern="(\d{5}([\-]\d{4})?)"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">Phone<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="phone" type="text" required="" placeholder="123-456-7890" pattern="\d{3}[\-]\d{3}[\-]\d{4}"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">Email<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="email" type="email" required="" pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">Signature (Type Name)<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="sig" type="text" required="" pattern=".{3,}"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">Today's Date<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input type="text" class="datepicker date1" required=""> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">State License Number<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input name="lic_numb" type="text" required="" pattern=".{3,}"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right">License Exp. Date<span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left"> 
        <input type="text" class="datepicker date2" required=""> 
       </td> 
      </tr> 
      <tr> 
       <td align="right" valign="top"> 
        <input name="check1" type="checkbox" value="" required=""><span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left">My signature certifies that 
        <br>1) The information provided</td> 
      </tr> 
      <tr> 
       <td align="right" valign="top"> 
        <input name="check2" type="checkbox" value="" required=""><span style="color:red;">*</span> 
       </td> 
       <td style="text-align: left">I verify that the recipient is eligible to receive samples.<br> 
       </td> 
      </tr> 
      <tr> 
       <td width="25%" align="right">&nbsp;</td> 
       <td style="text-align: left"> 
        <button type="submit" class="submits">Submit</button> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</form> 

脚本

jQuery(function($) { 
      $(".datepicker").datepicker({ 
       numberOfMonths: 3, 
       showButtonPanel: true 
      }); 
      $("#form1").submit(function() { 
       var url = "example.com/process.php"; // the script where you handle the form input. 
       $.post(url, { 
        name: $("input[name='name']").val(), 
        type: $("select[name='type'] option:selected").text(), 
        address: $("input[name='address']").val(), 
        city: $("input[name='city']").val(), 
        state: $("select[name='state'] option:selected").text(), 
        zip: $("input[name='zip']").val(), 
        phone: $("input[name='phone']").val(), 
        email: $("input[name='email']").val(), 
        sig: $("input[name='sig']").val(), 
        date: $(".date1").datepicker("getDate"), 
        lic_numb: $("input[name='lic_numb']").val(), 
        lic_date: $(".date2").datepicker("getDate"), 
        code: 'tEH4s' 
       }).done(function(data) { 
        $(".result").html(data); 
        $('input').val(''); 
        $('#form1').css("height", "0"); 
       }); 
       return false; // avoid to execute the actual submit of the form. 
      }); 
     }); 
+0

采取我认为它的工作 – 2014-09-05 13:27:29

+1

不给表单中的“操作”仅在HTML5中有效。如果缺少此属性,那么不支持HTML5的老浏览器可能无法运行。这还包括不提交。 – Spokey 2014-09-05 13:29:14

+0

您是否在生产代码中使用'console'?这会炸毁IE。 – Jack 2014-09-05 13:35:30

回答

0

一个重要的怪癖要注意的:在包含<按钮/ >元素的形式,被点击的按钮</>元素时,IE6和IE7将不提交表单。另一方面,其他浏览器将提交表单。 - Source

让它在IE6和IE7工作,你需要改变button标签改为:

<input type="submit" class="submits" value="Submit" /> 
+0

我已经完成了对IE7的测试,它似乎按原样工作。尽可能多的问题,IE浏览器可能不会这样。 – vico 2014-09-05 13:42:29

+0

@vico,你也尝试指定一个'action'属性给表单,它不起作用? – 2014-09-05 14:00:25

+0

当有人禁用javascript时,我只能重现这个问题,并将动作url添加到目标页面,或者在它没有做任何事情之前。 – vico 2014-09-05 14:20:16

0

在我看来,你需要提交表单的动作,因为它是在说w3c HTML 4 spec.

+0

不会,将提交没有它。只是为了自己。更不用说OP说不使用'action',而是使用JS。 – putvande 2014-09-05 13:31:05

+0

@DanielSchmidt你为什么这么认为?我希望你能解释你为什么这么认为。 – Regent 2014-09-05 13:31:16

+0

@Regent我认为这是写在这里:http://www.w3.org/TR/html401/interact/forms.html#h-17.3行动似乎是必需的。 – 2014-09-05 15:06:20

相关问题