以下でalertが'0123456789'と表示されるようにしたいのですが、functionの括弧内をalert上に表示させることができません。何かヒントはないでしょうか?
※ありがとうございます。function内の括弧にcheckが入ったままの状態がデフォルトで動かせない状況です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/16 06:42
回答3件
0
document.getElementById('demo').onsubmit = function(check)
↓
document.getElementById('demo').onsubmit = function()
onsubmit = function(arg)
の場合第一引数にはeventオブジェクトが渡されます、したがって、
document.getElementById('demo').onsubmit = function(check)
書くと上で宣言したcheckではなくcheckの中身はeventオブジェクトになるからです。
投稿2016/11/16 05:01
編集2016/11/16 05:06総合スコア1689
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
スコープの範囲の問題なのでcheckがグローバル変数で設定されていれば
以下で処理できるみたいです
HTML
1<script> 2var check = '0123456789'; 3window.onload=function(){ 4 document.getElementById('demo').onsubmit = function(check){ 5 alert(window.check); 6 return false; 7 }; 8}; 9</script> 10<form id="demo"> 11<input type="submit" value="demo"> 12</form>
投稿2016/11/16 05:59
編集2016/11/16 06:05総合スコア114833
0
addEventListener で this オブジェクトに値を持たせる
function内の括弧にcheckが入ったままの状態がデフォルトで動かせない状況です。
動かせない理由が不可解ですが、変数名を変更できないなら外部から参照する方法を変えるしかないですね。
ただし、変数 check
にイベントオブジェクトが入る事になって変数名と中身が一致しないのでとても分かりづらいコードだと思います。
HTML
1<form id="demo"> 2 <input type="submit" value="submit" /> 3</form> 4<script type="text/javascript"> 5'use strict'; 6document.getElementById('demo').addEventListener('submit', { 7 check: '0123456789', 8 handleEvent: function handleEvent (check) { 9 alert(this.check); // "0123456789" 10 alert(check); // "[object Event]" 11 check.preventDefault(); 12}}, false); 13</script>
Function.prototype.bind で第一引数に束縛する
あまりコードを変えたくないのなら、Function.prototype.bind
で引数束縛する方法もあります。
JavaScript
1'use strict'; 2var check = '0123456789'; 3document.getElementById('demo').onsubmit = function (check, event) { 4 alert(check); 5 alert(event); 6 return false; 7}.bind(null, check); // Function.prototype.bind で第一引数を束縛
ただ、内容的に引数束縛しなければならない理由も見つからないので、「checkを動かせない理由」や背景を明らかにした方が良いと思います。
Re: arare17 さん
投稿2016/11/16 05:41
編集2016/11/16 06:11総合スコア18162
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。