2012-03-12 3 views
2

私はHTML5フォームの検証をポリ充てるためにWebshimsライブラリを使用しています。問題は、バリデーションを行うために、入力送信ボタンを使用する必要があるということです。私は、フォームを保存する目的で、CSSスタイル「LinkBut​​tonコントロール」を持っているので、これは、私は避けたいものです。Webshims:リンクをクリックして送信するときにフォームを検証する

<a href="#" id="myLink" class="submit"> 
    <em>&nbsp;</em><span>Save form</span> 
</a> 

「LinkBut​​tonコントロール」をクリックすると、フォームがうまく提出しますが、検証は発生しません。

$('myLink').click(function(e) { 
    $('myForm').submit(); 
}); 

それが送信ボタンを入力してフォームを送信するときと同じように発生する検証を強制する何らかの方法することが可能です:リンクをクリックしたとき、私は、フォームを送信するためにjQueryを使うのか?

+0

(私はそれの原因を知りませんが)、私はあなたの問題を理解しますが、何らかの理由で、あなたドンがあります書式を提出するには、単にスタイル「

+0

ありがとうございますが、ボタンを使用することはできません。リンクボタンを一貫して表示するためのデザインガイドラインがあるため、

答えて

2

ウェブシムは、HTML5で指定されたフォーム検証APIを実装しています。

https://github.com/aFarkas/webshim/issues/103#issuecomment-4298458はここにあなたの問題のために短い「回避策」である:あなたがそれに次のバグ報告と私の答えを読むことができます

//configure webshims to use customized bubbles 
$.webshims.setOptions('forms', { 
    replaceValidationUI: true 
}); 

//start polyfilling forms feature 
$.webshims.polyfill('forms'); 


$(function(){ 
    $('myLink').click(function(e) { 
     if($('myForm').checkValidity()){ 
      $('myForm').submit(); 
     } 
    }); 
}); 

しかし、これを明確にするために、最善の方法は、送信ボタンを使用することです。スタイルボタンを提出取得するには、ここではX-ブラウザを動作するはずです、簡単なボタン・リセットは、次のとおりです。

button::-moz-focus-inner, 
input::-moz-focus-inner { 
    border: 0; 
    padding: 0; 
} 
input.btn-reset, 
button.btn-reset { 
    overflow: visible; 
    display: inline-block; 
    border: none; 
    padding: 0; 
    background: transparent; 
    -webkit-appearance: none; 
    color: #000; 
    font-family: arial,helvetica,sans-serif; 
    cursor: pointer; 
} 
+0

ありがとうございました!送信ボタンを使用するのが最善の方法だと私は理解していますが、これは私の場合は達成できません。 –

関連する問題