2017-02-28 7 views
0

こんにちは、私は、HTML 型では2つのテキストボックスを持っている=数parseFloatの使用中にエラーが発生しました。 "name = 'field_name'の無効なフォームコントロールにはフォーカスが当てられません。

<input data-sign="BHD " type="number" class="widthinput input__field input__field--yoshiko validation-passed" value="" name="special_price" id="special_price"> 
<input data-sign="BHD " value="" type="number" class="required-entry validate-zero-or-greater input__field input__field--yoshiko validation-passed" name="price" id="price"> 

、ここでは私が

価格などの値を入力すると

if(parseFloat(jQuery('#special_price').val()) >= parseFloat(jQuery('#price').val())){ 
    console.log(parseFloat(jQuery('#special_price').val())); 
    console.log(parseFloat(jQuery('#price').val())); 
    alert("You can't enter special price greater than price"); 
    jQuery("html, body").animate({ scrollTop: 0 }, "slow"); 
    e.preventDefault(); 
    return false; 
} 

をチェックするための私のjsのコードです: 160、特別価格:90

私は上だ、これが正常に動作条件をJSが、私は

価格250.750などの値を入力すると、特別価格55.350

は、この条件がコンソール

An invalid form control with name='price' is not focusable. 
An invalid form control with name='special_price' is not focusable. 

に失敗し、私にエラーを与えてクロムブラウザ。

答えて

1

コードが動作しています。jqueryライブラリを確認してください。参照してくださいjsfiddle

またはフォームにnovalidate属性を追加するのに役立ちます:

<form name="myform" novalidate> 

更新タイプは数字がmaxと一緒に(有効なstep値の制御を持っている

min)。デフォルトはです。この値は、ステッパーボタンの実装でも使用されます(つまり、押し上げが増加するのはstep)。

<input type="number" step="0.01"> 

この値を適切な値に変更するだけです。お金のために、小数点以下はおそらく予想されています

(それが唯一の正することができた場合、私はまた、最小= 0を設定したい)

あなたは小数点以下の桁の任意の数を許可することを好むだろう場合は、使用することができますstep="any"(ただし、通貨については0.01を固執することをおすすめします)。クローム& Firefoxでは、ステッパーボタンがanyを使用した場合1で/デクリメントをインクリメントし、the relevant spec hereが表示されます)

はここで様々なステップは、さまざまな入力タイプにどのように影響するかを示す遊び場です:

<form> 
 
    <input type=number step=1 /> Step 1 (default)<br /> 
 
    <input type=number step=0.01 /> Step 0.01<br /> 
 
    <input type=number step=any /> Step any<br /> 
 
    <input type=range step=20 /> Step 20<br /> 
 
    <input type=datetime-local step=60 /> Step 60 (default)<br /> 
 
    <input type=datetime-local step=1 /> Step 1<br /> 
 
    <input type=datetime-local step=any /> Step any<br /> 
 
    <input type=datetime-local step=0.001 /> Step 0.001<br /> 
 
    <input type=datetime-local step=3600 /> Step 3600 (1 hour)<br /> 
 
    <input type=datetime-local step=86400 /> Step 86400 (1 day)<br /> 
 
    <input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br /> 
 
</form>

+0

私はNOVALIDATEを追加することはできません私は検証 – OBAID

+0

を必要とする私は、問題がタイプ=「テキスト」を作ってみると、入力を確認し – OBAID

+0

浮動小数点数を受け入れない「数」がjsの機能 – ABD

0

タイプ= "テキスト"に変更しました。この番号はjsから確認しています。今はきれいにする。

関連する問題