不太熟悉JQuery,但我基本上是在尝试做同样的事情,这里问:
输入被禁用,直到之前的输入被填充
. .这个问题得到了成功的回答,这是最合适的答案:http://jsfiddle.net/WYhNm/(我也在使用的代码)
…然而,在我的例子中,有一个例外:如果字段已经有一个值,并且如果该值不是空的,那么它不应该被禁用。这样做的原因是因为我正在使用一个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 -使用这个JSFiddle,我怎么能启用"禁用"字段,如果他们的value
=任何非空?
希望我正确理解了你的问题。
$('.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); // <--
希望这对你有帮助!