如何收听具有“必需”属性的所有输入?

时间:2018-06-15 14:24:48

标签: javascript jquery required

编辑:

我有一个输入字段和一个复选框。复选框允许在此输入字段上赢得“必需”。我想听需要,我的意思是,如果需要是真的。我不想听复选框。

==>当输入win / lose required属性时,它会触发功能(不使用复选框)。

$(document).ready(function() {

    $('input[type=checkbox]').click(function() {
        cible_required_on = $(this).closest('.panel').find('.required_on');
        if(!cible_required_on.prop('required')){
            cible_required_on.attr("required", true);
        } else {
            cible_required_on.attr("required", false);
        }
    });


// Here my new function listening required attribute

});
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<div class="panel panel-default" >
    <div class="container-fluid">
            <div class="row">
                <div class="col-sm-12 col-md-4 changement_position_champ" id="bottom_left">
                    <div class="panel">
                        <label> Raison Sociale</label>
                        <div class="input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-use" ></i></span>
                            <input type="text" class="form-control required_on" placeholder="Raison sociale"
                                   aria-describedby="basic-addon1">
                        </div>
                    </div>
                        <div class="checkbox">
                            <label><input type="checkbox" ><p>Checkbox trigger required on input field</p></label>
                        </div>
                </div>
            </div>
    </div>
</div>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

$('input[required]').change(function(){
   alert('required')
});

$('input[required]').change(function(){
   alert('required')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" required/>
<input type="text" />

答案 1 :(得分:0)

如问题中所述,用户需要选择具有某些条件的输入,例如复选框并且是必需的。因此,我们可以使用jquery过滤器选择器来实现目标,而不是运行更多内存耗尽的循环。

以下是示例。

var a = $('input[required][type="checkbox"]');
console.log(a)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='checkbox' required>

答案 2 :(得分:0)

知道我迟到了,这是我的贡献:

// ES6 supported - () => {} , arrow-function
$(':input[required]').change((e) => {
	alert("Changed: " + e.target.value);
});

// Older compatibility
/*
$(':input[required]').change(function(e) {
	alert("Changed: " + e.target.value);
});
*/
input {
  width: 200px;
  display: block;
  margin-bottom: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Type something and unfocus from input.</p>
<form action="#">
  <input type="text" required />
  <input type="text" required />
  <input type="checkbox" required />
  <input type="text" />
  <input type="submit" />
</form>