.prop(' selected')无效,按钮在jquery中一直处于禁用状态

时间:2015-05-11 13:23:13

标签: javascript jquery html5 css3

我想在选择了选择字段中的状态后启用提交按钮。

<div class="close_req">
    <div class="req_status">
        <select id="status_update">
            <option value="status" selected="selected" disabled="disabled">Status</option>
            <option value="complete">Complete</option>
            <option value="pending">Pending</option>
        </select>
    </div>
    <div class="req_addcharges">
        <select id="additional_charges">
            <option value="charge">Additional Charges</option>
            <option value="complete">Yes</option>
            <option value="pending">No</option>
        </select>
    </div>
    <div class="additional_charge">
        <input type="text" id="add_price" name="add_price" placeholder="Enter the additional charge" />
    </div>
    <div class="task_desc">
        <textarea id="task" name="task" cols="10" rows="6" placeholder="Description of the task"></textarea>
    </div>
    <div class="task_complete">
        <input type="submit" id="complete" name="complete" value="Task Complete" />
    </div>
    </form>
</div>

这是我试过的jquery脚本

$(document).ready(function () {
    $("#complete").attr("disabled", "disabled");

    function updateFormEnabled() {
        if ($("#status_update").prop('selected', true)) {
            $("#complete").removeAttr('disabled');
        } else {
            $("#complete").attr('disabled', 'disabled');
        }
    }
});
$("#status_update").change(updateFormEnabled);

但是提交按钮始终处于禁用状态,我希望在选择字段中选择状态后启用该按钮。任何人都可以帮我解决这个问题。

4 个答案:

答案 0 :(得分:2)

你的病情不好,应该是

if ($("#status_update").prop('selected') == true)

答案 1 :(得分:2)

$("#status_update").change(updateFormEnabled);应该在$(document).ready(function () {});

答案 2 :(得分:2)

#status_update是选择列表而不是选项,您必须改为检查所选选项:

function updateFormEnabled() {
        $("#complete").attr('disabled', 'disabled');
        $('#status_update option').each(function() {
           if($(this).is(':selected')){
               $("#complete").removeAttr('disabled');
               return;
           }
        }
    }
$("#status_update").change(updateFormEnabled);

答案 3 :(得分:1)

另一种方法是

if($("#status_update option:selected").length) {/* do action */}

<强>的jsfiddle

http://jsfiddle.net/9pqekb63/1/