2014-09-05 72 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