JQuery -禁用表单,除非value = n't NULL


JQuery - Disable form unless value isn't NULL?

不太熟悉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); // <--

希望这对你有帮助!