フォームのボタンがクリックされたことを通知するために、クリック ハンドラを定義する必要はありません。フォームには送信ボタンを含めることができます。このボタンがクリックされると、フォームに対して送信イベントが発生します。さらに、ユーザーがボタンをクリックせずに Enter キーを押すと、送信イベントも発生します。したがって、両方の状況を自動的に処理します。
そのように機能するように定義することをお勧めします。
window.onload = function(){
document.getElementById('signupform').addEventListener('submit',function(e){
changeClassOfNametd();
e.preventDefault(); // this prevents the side from being reloaded by the script.
});
};
function changeClassOfNametd(){
var nameValue = document.forms["signupform"]["name"].value;
if(nameValue){ // when value is "" (zero, no signs) it is false anyway
var y = document.getElementById("nametd");
y.className = 'change';
//y.classList.toggle('change'); you can toggle classname "change" too
// which works that way class="unchange" -> class="unchange change"
// you have to define appropriate css-classes for toggle.
}
}
上記のコードは、html ファイルのどこに置いても機能します。