@tameme0128

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

JavascriptのIF文分岐について

解決したいこと

JavaScript内でIf分がうまく機能しない

例)
在庫管理システムを作っており、
フォームで入力された出荷する個数をデータベースある在庫戸数を比較し、
入力された個数が在庫数を上回る数が記入された際にエラーを返したいです。

発生している問題・エラー

在庫が1000対して、2000で入力しても100で入力しても同じ分岐に入ってしまいます。

無題.png

該当するソースコード

![uploading...0]()
function checkinput() {
    //エンターキー無効
    if(window.event.keyCode == 13){    //Enter キー  
        return false;    //無効  
    }  
        error_msg="";
   	var flag = 0;
        var stock= JSON.parse('<?php echo $amountno_json; ?>');
        var issue= document.form.amountno.value;
	// 設定開始(必須にする項目を設定)

	if(issue == ""){ 
		flag = 1;
		error_msg= '!amountno empty!';
	} else if(issue > stock) {
		flag = 1;
		error_msg= '!Too many amountno! \nStock:'+ stock +'\nIssue:'+ issue;
        }
	// 設定終了
	if(flag == 1){
		window.alert(error_msg); // 入力漏れがあれば警告ダイアログを表示
		return false; // 登録を中止
	}
	else{
	    if(window.confirm('Stock:'+param +'\nIssue:'+ stock +'\nIssue OK?')){ // 確認ダイアログを表示

	      	return true; // 「OK」時は送信を実行

	    }
	    else{ // 「キャンセル」時の処理

		window.alert('Canceled'); // 警告ダイアログを表示
		return false; // 送信を中止

	    }
	}
}

自分で試したこと

出荷数を0にした場合のみうまくいくことがわかりました。

何がいけないのでしょうか。
教えてもらえると助かります。

0 likes

2Answer

stockという変数に入っている値のデータ型は何ですか?
併せてissueという変数変数のデータ型も確認してください。
どちらも数値型(jsならnumberでしたっけ?)であることを確認できますでしょうか。

0Like

Comments

  1. @tameme0128

    Questioner

    Number関数で変換したら解決しました。
    ありがとうございました。

JSON.parse('<?php echo $amountno_json; ?>');

その結果は何になるんでしょうか?

何にせよ比較については、以下の記事が参考になると思います。「解説」のセクションを読んでください。

0Like

Your answer might help someone💌