Мне нужно создать функцию проверки, которая будет проверять определенный элемент на две вещи:
- Он имеет определенный класс
- Он принадлежит форме, содержащей частичное совпадение текста в действии формы
Например, с учетом следующего:
<form method="post" action="/page1">
<div>
<ul>
<li><input type="text" id="text1" class="red" /></li>
<li><input type="text" id="text2" class="red" /></li>
<li><button id="button1" class="blue">Enter</button></li>
</ul>
</div>
</form>
<form method="post" action="/page2">
<div>
<ul>
<li><input type="text" id="text3" class="red" /></li>
<li><input type="text" id="text4" class="blue" /></li>
<li><button id="button2" class="blue">Enter</button></li>
</ul>
</div>
</form>
<form method="post" action="/page2andpage3">
<div>
<ul>
<li><input type="text" id="text5" class="red" /></li>
<li><input type="text" id="text6" class="blue" /></li>
<li><button id="button3" class="blue">Enter</button></li>
</ul>
</div>
</form>
Я бы ожидал, что смогу создать функцию и получить следующие результаты:
isElementValid('text1', 'blue', 'page2') // false
isElementValid('button1', 'blue', 'page2') // false
isElementValid('text3', 'blue', 'page2') // false
isElementValid('text4', 'blue', 'page2') // true
isElementValid('button2', 'blue', 'page2') // true
isElementValid('button3', 'blue', 'page2') // true
Я предполагаю, что смогу использовать hasClass и родителей , чтобы создать что-то вроде:
function isElementValid(element, color, action) {
var matchingClass = $(element).hasClass(color);
var matchingParent = $(element).parents() //....attr('action').contains(action);
return matchingClass && matchingParent;
}
Но я не уверен, как лучше проверить родителям форму с действием. Это правильно или есть лучший подход?