2016-08-12 8 views
-1

ボタンをクリックしたときにJavaScriptが動作していない理由を理解しようとしています。私はjavascriptファイルが正しく読み込まれていることを確認し、コンソールにエラーはないことを確認しました。コンソールでjavascriptコードを実行すると、コードは正常に実行され、実行されるはずのことが実行されますが、ボタンをクリックすると起動しません。私はすべての構文が正しいと信じているので、この問題を引き起こしているものがわからない。Javascriptボタンonclick()が点滅しない

以下

ボタンのHTMLです:

以下
<input class="btnSaveParameters" id="btn_SaveCriteria" onclick="return btn_SaveCriteria_onclick();" type="button" value="Save Subscription"/> 

はコンソールで正しく実行されるJavaScriptの関数であるが、ボタンをクリックしたときに発生しません:

function btn_SaveCriteria_onclick() { 
    //Testing if function fires: 
    window.alert(5 + 6); 

    var availableSelects = []; 
    $("Select").each(function() { 
     availableSelects.push($(this).attr("id")); 
    }); 
    if (
     $("#" + availableSelects[1]) 
      .find(":selected") 
      .text() + $("#" + availableSelects[2]) 
      .find(":selected") 
      .text()+$("#" + availableSelects[2]) 
      .find(":selected").text() ==='AllAllAll' 
    ) { 
     $(".PageTitle").append("<div id='dialog' title='Parameter Warning'>You cannot select all for all 3 filters</div>"); 
      $("#dialog").dialog(); 
     } else { 
      var t = document.getElementById("modal-form").cloneNode(true); 
      t.style.display = "inline"; 
      var options = { 
       title : "Add a Description to your Subscription", 
       width : 500, 
       height : 100, 
       dialogReturnValueCallback : MyDialogClosed, 
       html: t 
      }; 
     }; 
     SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options); 
    } 
} 

誰もが見ることができますなぜJavaScriptがボタンをクリックして発砲していないのですか?

+1

あなたは 'onclick =" btn_SaveCriteria_onclick(); "を試したことがありますか? –

+0

@GaryJohnsonはいIvは "返品"、運がなくなりました – Reeggiie

+1

あなたはフィドルをまとめることができますか? – brso05

答えて

0

入力いただきありがとうございます。

私は、JavaScript関数を起動するボタンを得ることができましたが、なぜそれが機能するのかわかりません。

新しい機能を作成し、ボタンに接続しました。

function test2() { window.alert(1+1);} 

このテスト機能は、ボタンをクリックすると起動します。次に、残りのコードをtest2関数に追加しようとしました。それはまた発砲した。これは働いていたことを見て、私は

test() 

btn_SaveCriteria_onclick() 

から、元の関数名を変更し、TEST2機能を削除しました。なんらかの理由で、名前をtest()に変更するとjavascriptが起動しました。そこで、関数名をbtn_SaveCriteria_onclick()からsaveSubscriptionOnClick()に変更したものに変更しました。

なぜこれがうまくいかなかったのか、それともなぜこれが問題だったのか分かりません。

0

おそらくonclickイベントは範囲外であるため、関数を見つけることができません。 jQueryを使ってイベントを添付して確保するため

私がテストして取り組んでいる:

https://jsfiddle.net/8k9ms39s/

// this will atach btn_SaveCriteria_onclick to btn_SaveCriteria button. 

    $(function() { 
     $('#btn_SaveCriteria').click(function(){ btn_SaveCriteria_onclick(); }); 
    }); 


    // this is your unchanged function 
    function btn_SaveCriteria_onclick() { 


    //Testing if function fires: 
    window.alert(5 + 6); 

    var availableSelects = []; 
    $("Select").each(function() { 
     availableSelects.push($(this).attr("id")); 
    }); 
    if ($("#" + availableSelects[1]).find(":selected").text() + $("#" + availableSelects[2]).find(":selected").text()+$("#" + availableSelects[2]).find(":selected").text() ==='AllAllAll') { 
     $(".PageTitle").append("<div id='dialog' title='Parameter Warning'>You cannot select all for all 3 filters</div>"); 
     $("#dialog").dialog(); 

    } else { 
    var t = document.getElementById("modal-form").cloneNode(true); 
    t.style.display = "inline"; 

    var options = { title: "Add a Description to your Subscription", width: 500, height: 100, dialogReturnValueCallback: MyDialogClosed, html: t };//$('<div id="pgDiv"><form id="pgForm" method="post"><input type="text" name="Description" id="pgDescription>Description: </form></div>').get(0) }; 


    SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options); 

    } 
    } 
+0

あなたのコードは動作しています。私はこれを使用して試して11値をポップアップして警告しようとしました – BHR

+0

はい、働いています。なぜ人々は-2を私の答えo.Oに与えるのかわかりません 11結果は@Reeggiie original関数の警告です。 –

+0

あなたの関数を 'var func = function(){..};と宣言していない限り、javascriptはその順序付けを気にする必要がないことに注意してください。 [JavaScript関数宣言構文:var fn = function(){} vs関数fn(){}](http://stackoverflow.com/questions/336859/javascript-function-declaration-syntax-var-fn-function-vs -function-fn) –

0

ご入力ボタンタグ上記のスクリプトタグであなたの関数を入れてください。あなたのHTMLファイルに :https://jsfiddle.net/L7rmb4n1/

<script> 
function btn_SaveCriteria_onclick() { 
//Testing if function fires: 
alert(5 + 6); 
var availableSelects = []; 
$("Select").each(function() { 
    availableSelects.push($(this).attr("id")); 
}); 
if ($("#" + availableSelects[1]).find(":selected").text() + $("#" + availableSelects[2]).find(":selected").text()+$("#" + availableSelects[2]).find(":selected").text() ==='AllAllAll') { 
    $(".PageTitle").append("<div id='dialog' title='Parameter Warning'>You cannot select all for all 3 filters</div>"); 
    $("#dialog").dialog(); 

} else { 
var t = document.getElementById("modal-form").cloneNode(true); 
t.style.display = "inline"; 

var options = { title: "Add a Description to your Subscription", width: 500, height: 100, dialogReturnValueCallback: MyDialogClosed, html: t };//$('<div id="pgDiv"><form id="pgForm" method="post"><input type="text" name="Description" id="pgDescription>Description: </form></div>').get(0) }; 


SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options); 

} 
} 

</script> 

<input class="btnSaveParameters" id="btn_SaveCriteria" 
onclick="btn_SaveCriteria_onclick();" type="button" value="Save Subscription"/> 

あなたはしなさいファイル別のJSの関数を入れて喜んでいる場合はheadタグ内またはあなたのボタンの上のjsファイルが含まれています。

これが機能するかどうかお知らせください。

関連する問題