如果另一个输入不是空的javascript / jquery,如何添加必需的属性?

时间:2015-09-27 11:14:32

标签: javascript jquery html

我在表单中有一个列表,因此在每个列表项中都有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

2 个答案:

答案 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);
    });
});

JSFiddle demo

.filter()

$('#submit').click(function(e){
    $('.report-list input').prop('required', false).filter(function(){
        return $(this).val();
    }).closest('li').find('input').prop('required', true);
});

JSFiddle demo

答案 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