私はサンプルフォーム検証をプレーンなjavascriptだけで行いました。私は2つの関数をイベントコールバック関数の中に格納することに決めてしまうまで、すべては大丈夫でした。私はそれを私のjavascriptファイルは、コードの少ない行を持つことができるようにした。コールバック関数は1つの関数しか実行できません。イベント関数は同時に複数の他の関数を呼び出すことができません
var query = document.querySelector.bind(document);
function isBlank(element) {
var isblank = (!element.value) ? true : false;
element.setAttribute('data-error', isblank);
return isblank;
}
function isInvalid(element, regex) {
var invalidValue = (!element.value.match(regex)) ? true : false;
element.setAttribute('data-error', invalidValue);
return invalidValue;
}
function checkInput(e) {
var $this = e.target;
return [
isBlank($this),
isInvalid($this, /^[a-zA-Z ]*$/)
];
}
query('#name').addEventListener('blur', checkInput);
form input[name] {
border: 1px solid #ccc;
}
form input[data-error="true"] {
border-color: red;
}
form input[data-error="false"] {
border-color: #ccc;
}
<form action="" method="post">
<input type="text" name="name" id="name" placeholder="Name" data-error=""><span class="message"></span><br>
<input type="submit" value="Submit">
</form>
私はまた、次の2つのオプションを試してみましたが、それはどちらか動作しませんでした:
function checkInput(e) {
var $this = e.target;
return {
execute: [
isBlank($this),
isInvalid($this, /^[a-zA-Z ]*$/)
]
};
}
function checkInput(e) {
var $this = e.target;
isBlank($this);
isInvalid($this, /^[a-zA-Z ]*$/);
}
は、どのように私はそれを修正するが、コードクリーナーとより組織を作ることができますか?
。したがって、2番目のものが上書きされます。 – Vitalii