我在表单中有一个列表,因此在每个列表项中都有2个输入。
我希望在表单提交时,如果我在同一列表中的2个输入之一不为空,则它们都应该被满足(必需属性),但如果在其他列表项上,则2个输入为空,按原样发送它们。
以下是仅一个列表项的示例:
<form class="settings-form quick-reports">
<ul class="report-list">
<li class="report-list-li">
<span class="report-num">Report 01</span>
<div class="settings-name-fields">
<label for="website-name1" class="report-name">Name</label>
<input class="website-input" type="text" id="website-name1">
</div>
<div class="settings-url-fields">
<label for="website-url1" class="report-url">URL</label>
<input class="url-input" type="url">
</div>
</li>
</ul>
</form>
想出类似的事情:
$('#submit').click(function(e){
if($(input1).val() !== ""){
$('input1').prop('required', true);
$('input2').prop('required', true);
}
});
但我不知道如何做到这一点,并使其适合我列表中的每个列表项目
我的小提琴是here
答案 0 :(得分:2)
这应该做你需要的:
使用.each()
循环:
$('#submit').click(function(e){
// remove required property in case that some fields were modified before click
$('.report-list input').prop('required', false).each(function(){
!$(this).val() || $(this).closest('li').find('input').prop('required', true);
});
});
$('#submit').click(function(e){
$('.report-list input').prop('required', false).filter(function(){
return $(this).val();
}).closest('li').find('input').prop('required', true);
});
答案 1 :(得分:0)
我建议不要在这里使用属性Fatal error: Call to a member function toHtml() on a non-object in D:\xampp\htdocs\cfh\app\code\core\Mage\Checkout\controllers\OnepageController.php on line 289
,首先这个属性在所有浏览器中都不起作用(例如IE只是忽略它),其次,可能是在提交时设置它可能是太晚了。
我会用这样的东西:
required