2016-09-01 10 views
0
///// FORM //// 
var form = document.getElementById("form"); 
form.setAttribute("style", "position: relative; margin-bottom: 5%;"); 

var newButton = document.createElement('button'); 
var newUl = document.createElement('ul'); 
var newLi = document.createElement('li'); 
var newInput = document.createElement('input'); 
form.appendChild(newButton); 
newButton.setAttribute("style", "position: absolute; width: 15%; height: 40px; left: 42%; color: #B00000; background-color: white; font-size: 18px; border: 0px; "); 
newButton.innerHTML = "Direct Message"; 
newButton.onClick = function() { 
    alert("works"); 
}; 

私の選択に何か問題がありますか? on.clickをnewButtonで作成された要素であるmyボタンで操作したいだけです。なぜこのon.Clickイベントは動作しません

+1

MCVEを投稿していない理由は何ですか? – Amit

+0

申し訳ありません私は幾分新しいとmcveについて知りませんでした、それについてはごめんね –

答えて

2

Javascriptのプロパティ名では、大文字と小文字が区別されます。newButton.onclickである必要があります。

また、現代に移行してaddEventListenerを使用することもできます。

newButton.addEventListener("click", function() { 
    alert("works"); 
}); 
+0

笑あなたのおかげで、なぜそれがonclickよりも優れています。何の理由もなく書いているように思えます。 –

+0

複数のリスナーを追加できるので、より一般的です。さらに柔軟性を持たせるオプションの引数もあります。 – Barmar

0

2つのこと:

  1. あなたが「ボタン」にあるボタンの「タイプ」属性を設定する必要があります。
  2. は、それは最初のものは、それがクリックされていますとき、周囲の<form>を提出からボタンを防ぐ

、「onclickの」ない「のonClick」です。 2番目はイベントハンドラを正しく設定します。

+0

ありがとうございます、フォームをボタン機能にサブミットする場合はどうすればいいですか? –

+0

@FransBフォームを送信したい場合は「タイプ」を「ボタン」に設定しないでください。あるいは明示的に型を "submit"に設定して明示的に物事を明示することもできます。 – Pointy

0

構文が正しくないため、このコードは機能しません。

イベント「クリック」に関する正しい構文は以下の通りです:

newButton.onclick = function(){ 
alert("works"); 
}; 

イベントは小文字で記述しています。

関連する問題