2016-07-01 1 views
-1

私は、バイク用のフレームサイズを計算するための短い計算式を作成しようとしています。jQueryフォームでの計算

計算は次のとおりです。長さ* 0.68 =フレームサイズ。ただし、サドルピンのオプションが選択されている場合は、(計算されたフレームサイズの)4の減算が必要です。

これは私がこれまで持っているものです。

$("select[name='length']").change(function(){ 
    var $l = $('length[name='length']'); 
    if($l.length >140){ 
     var m = parseInt($l.val(), 10) 
     $("#result").val(l*0.68); 
    } else { 
     $("p").text("Hello world!"); 
    }  
}); 

<form> 
    <input type="text" value"" name="length"> 
    <input type="radio" name="type" value="nopin"> Zadelpen 
    <input type="text" value="" id="result"/> 
</form> 
<p></p> 

そして、フィドルはここにある: https://jsfiddle.net/m2qnf3jm/

あなたはそれが私にどんな結果を与えていない見ることができるように。私はjQueryが新しく、このテーマで見つけられるチュートリアルに従おうとしました。私の推測では、計算を開始するにはボタンが必要ですか?オプションのサドルピンが選択されていれば、最後にどのように差し引かれますか?

また、最小の長さは140なので、誰かがそれより低い値を入力すると、何かをエコーし​​ようとしました。

+1

問題は '$( 'length [name =' length ']');'セレクタ(* lengthは要素ではありません)と '' ''で囲まれています。そしてconsoleforエラーを確認してください –

答えて

0

あなたのhtmlとjavascriptロットのタイプミスと無効な構文。 のonchangeイベントが少し斜めに思わ

$('document').ready(function() { 
 
    $('input[name="length"]').on('change', function() { 
 
    var lengVal = $(this).val(); 
 
    var m = parseFloat(lengVal) * 0.68; 
 
    
 
    $('#result').val(lengVal > 140 ? m : 'Hello World!'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
<input type="text" value="" name="length"> 
 
<input type="radio" name="type" value="nopin"> Zadelpen 
 
<input type="text" value="" id="result"/> 
 
</form>

+0

ありがとう、私は何がうまくいかなかったか評価します。しかし、私は最後のルールを取得しない、14は何ですか?どうですか?そして、私は「hello world」ではなく、ボックスに計算を表示しようとしています。 html出力は、誰かが140よりも小さいものを入力したときのものです。 – Kelly

+0

@Kellyこれは、簡略なIf文です。 lengVal> 140が真の場合、 ":"の左にある式が選択されます。そうでない場合は、式がセミコロンの右に移動します。それで、あなたが尋ねたことはしますが、入力が140以下のときは、 "hello word!" –

+0

ああ、私は今理解しています!本当にありがとう。 – Kelly

1

:これを試してみてください。

$().ready(function() { 
    //PAGE READY FUNCTION - THE PLACE TO BIND EVENTS 
    $("input[name='length']").on('change, keyup', function() { 
     var length = $(this).val(); 
     if($l.length >140) 
     { 
      var m = parseFloat(length); 
      var value = m * 0.68; 
      $('p').html("NORMAL"); 
      if($('#radio_button').is(':checked')) 
      { 
       value = value - 4; 
       $('p').html("ZANDELPEN"); 
      } 
      $("#result").val(l*0.68); 
     } 
     else  
     { 
      $("p").text("Too Short!"); 
     } 
     }); 

}); 

EDIT

遅すぎるそれはそうです。しかしラジオボタンコードはあなたのためにあります。

グッドラック

1

ここではあなたのソリューションは、私はあなたの計算が正しい理解していれば、あなたの中に、また、このコード

を実行しよう

$('document').ready(function(){ 
    $('[name="length"]').on('change', function(){ 
     var l = $(this).val(); 
     if(l > 140){ 
      $("#result").val(parseInt(l) * 0.68); 
     } 
     else{ 
      $("p").text("Hello world!"); 
     } 
    }); 
}); 
2

$('#cacl_btn').on('click',function() { 
 
$("p").text(''); 
 
    var $l = $('input[name="length"]').val(); 
 
    
 
    if ($l >= 140) { 
 
    var m = $l * 0.68; 
 
var deduction=$('input[name="type"]').prop('checked')?4:0; 
 
    $("#result").val(Math.round(m*100)/100-deduction); 
 
    
 
    } else { 
 
    $("p").text("length couldn't be <140"); 
 
     $("#result").val(''); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<form> 
 
    <input type="text" value "" name="length"> 
 
    <input type="checkbox" name="type"> Zadelpen 
 
    
 
    <input type="button" id="cacl_btn" value="calculate"> 
 
    <input type="text" value="" id="result" /> 
 
</form> 
 
<p></p>

ですあなたはjqueへのリンクを追加するのを忘れてしまったry

入力やクラス名にidを使用することもお勧めします。

関連する問題