2016-03-27 7 views
0

javascriptとasp.net mvcプロジェクトの変数に問題があります。asp.net mvcのjavascript変数に関する問題

私はユーザーがページをフルスクリーン形式で表示するオプションを持つアプリケーションを構築しています。

ユーザーがページをフルスクリーン形式で表示し、送信キーをクリックすると、ページが送信される前に警告が表示されます。

私は、ユーザーが警告を受けるべきであるかどうかを判断するために、条件を処理するjavascriptにいくつか問題があります。

Javascriptを: 次のコードは、問題を示して

<script type="text/javascript"> 

    var $full = false; //initiates the full variable 

    $(document).ready(function() { 
     $("#TemplateID").change(function() { //when selected index of dropdown is changed 
      var selectedIndex = $("select option:selected").first().text(); //the selected index 
      $.get('@Url.Action("getIfFullscreen", "Messages")', //calls an ASP.net method to determine if selected index should be displayed as fullscreen 
       { id: selectedIndex }, function (data) { 
        $full = data; //sets the variable full to return value 
        Debug.writeln("onchange:" + $full) //displays as expected 
       }); 
     }); 
    }); 

    $(document).ready(function() { 
     $('[data-confirm]').click(function (e) { 
      Debug.writeln("onclick:" + $full); //displays as expected 
      if ($full == true){ //always takes the value from when the variable full was initiated 
       if (!confirm($(this).attr("data-confirm"))) { 
        e.preventDefault(); 
       } 
      } 
     }); 
    }); 
</script> 

HTML:

<div class="form-group"> 
        <div class="col-md-offset-2 col-md-10"> 
         <input type="submit" data-confirm="Are you sure?" value="Skicka" class="btn btn-default" /> 
        </div> 
       </div> 

それは変数フルのように思えるが、の表情から(最初の関数に)変更されましたデバッグ出力はif文で最初に開始されたときと同じように解釈されます。

私はかなりjavascriptに新しいですし、どんな助けも大歓迎です。

+1

あなたは$のfull' 'で見る価値は何ですか?ブール値trueまたは文字列 "true"に設定していますか? – Shyju

+0

私はasp.netの部分からブールtrue/falseで設定しています。私はあなたが正しい方向に私を指摘したと思います。代わりに整数を使用するようにフル変数を変更しましたが、今度はtrueとfalseの代わりに0と1を使用すると動作するようです。どうもありがとうございました! – karra

+0

はい。私はそれが失敗する理由を説明する答えを追加しました。 – Shyju

答えて

1

サーバーコードがブール値trueを返す場合、ではなくTrueとなります。 JavaScriptでTrueはブール値ではありませんtrueです。だからあなたのJS変数が文字列値"True"

で上書きされようとしているので、あなたは、文字列値に対してチェックするために、あなたの場合は条件を変更することがあり

if ($full === "True"){ } 
+1

完璧に動作します!どうもありがとうございました! – karra

関連する問題