不太熟悉JQuery,但我基本上试图做同样的事情:
Inputs disabled until previous input filled in
..这个问题得到了成功解答,这是最合适的答案:http://jsfiddle.net/WYhNm/(代码I' m也在使用)
...但是,在我的情况下,有一个例外:如果该字段已经有一个值,并且该值不为空,那么它就不应该被禁用。这样做的原因是因为我正在使用PHP / HTML5表单,在提交之前允许预览 - 因此字段的值将通过表单传递,然后返回到该字段的值全部在同一页面上。
示例:
//PHP
$tag1 = $_POST["Tag1"];
$tag2 = $_POST["Tag2"];
$tag3 = $_POST["Tag3"];
$output ='<form method="post" name="post_form"
action="process_post.php">
<input type="text" class="tag" name="Tag1" value="' . $tag1 . '">
<input type="text" class="tag" name="Tag2" value="' . $tag2 . '" disabled>
<input type="text" class="tag" name="Tag3" value="' . $tag3 . '" disabled>
<button type="submit" name="submit" value="publish_post">Publish Post</button>
<button type="submit" name="submit" value="preview_post">Preview Post</button>
</form>';
我已经尝试使用我的PHP知识在jQuery中运行比较 - 这不是很好,因为我不知道我在做什么:
var next_step = $(this).next('.tag');
var input = $(this).val('.tag');
if ($(this).val()) {
next_step.attr('disabled', false);
}
elseif ( input == "" ) { //Is elseif even valid here?
next_step.attr('disabled', true);
}
tl; dr - 使用this JSFiddle,如何启用&#34;禁用&#34;字段,如果他们的value
=任何非空的?
答案 0 :(得分:0)
我希望我能正确理解你的问题。
$('.step').change(function() {
var next_step = $(this).next('.step');
// If the element *has* a value
if ($(this).val()) {
next_step.attr('disabled', false);
}
// If the element doesn't have a value
else {
if(!next_step.val()) next_step.attr('disabled', true); // <--
}
});
仅在元素值的计算结果为false时禁用。
if(!next_step.val()) next_step.attr('disabled', true); // <--
希望这有帮助!