Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当某些字段被禁用时,表单不会与jquery表单提交一起提交_Jquery - Fatal编程技术网

当某些字段被禁用时,表单不会与jquery表单提交一起提交

当某些字段被禁用时,表单不会与jquery表单提交一起提交,jquery,Jquery,我正在通过jquery表单提交提交表单。就这样 但是,我给了用户一个选项来禁用表单上的某些字段。我使用以下jquery代码来完成此操作: $('#onlyTwo').click(function(){ var stuff = $("#textarea3, #textarea4, #radio3, #radio4, #onlyThree"); if($(this).is(":checked")) stuff.attr("disable

我正在通过jquery表单提交提交表单。就这样 但是,我给了用户一个选项来禁用表单上的某些字段。我使用以下jquery代码来完成此操作:

   $('#onlyTwo').click(function(){
        var stuff = $("#textarea3,  #textarea4, #radio3, #radio4, #onlyThree");
        if($(this).is(":checked"))
            stuff.attr("disabled", true);
        else {
            stuff.removeAttr("disabled");
        }
    });
基本上,只有两个是复选框。启用“切换”时,某些字段被禁用

当某些字段被禁用时,表单似乎不会提交。表单上有8个字段,似乎每次我单击submit时,它都希望这8个字段出现

以前有人遇到过这种情况吗

完整代码: ajax表单提交代码

    var options = {
        target:        '#output1',   // target element(s) to be updated with server response
        beforeSubmit:  showRequest,  // pre-submit callback
        success:       showResponse  // post-submit callback
    };


    // bind form using 'ajaxForm'
        $('#addQuestionForm').ajaxForm(options);
function showRequest(formData, jqForm, options) {
    var queryString = $.param(formData);
    alert('data: ' + formData);
    return true;
}

// post-submit callback
function showResponse(responseText, statusText)  {
    $('#output1').slideDown(100);
    $('#output1').fadeOut(3500);
    $('#question').val('');
    $('#textarea1').val('');
    $('#textarea2').val('');
    $('#textarea3').val('');
    $('#textarea4').val('');
    $('#question').val('');
    $('input[name="correctAnswer"]').attr('checked', false);
}
禁用字段的代码:

    $('#onlyTwo').click(function(){
        var stuff = $("#textarea3,  #textarea4, #radio3, #radio4, #onlyThree");
        if($(this).is(":checked"))
            stuff.attr("disabled", true);
        else {
            stuff.removeAttr("disabled");
        }
    });

    $('#onlyThree').click(function(){
        var stuff = $("#textarea4, #radio4, #onlyTwo");
        if($(this).is(":checked"))
            stuff.attr("disabled", true);
        else {
            stuff.removeAttr("disabled");
        }
    });
我的表格代码:

            <s:form id="addQuestionForm" action="addQuestion" namespace="/securityExam" method="post">
                <table border="0">
                        <td>Question For</td>
                        <td>
                            <select name="questionsType" id="questionsType">
                                <option selected="selected" value="U">Users</option>
                                <option value="C">Co-ordinators</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>Question</td>
                        <td><textarea id="question" name="question" rows="3" cols="35"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <td>Option 1</td>
                        <td><textarea  id="textarea1" name="option1" rows="3" cols="35"></textarea></td>
                    </tr>
                    <tr>
                        <td>Option 2</td>
                        <td><textarea  id="textarea2" name="option2" rows="3" cols="35"></textarea></td>
                    </tr>
                    <tr>
                        <td>Option 3</td>
                        <td><textarea id="textarea3" name="option3" rows="3" cols="35"></textarea></td>
                        <td><input id="onlyTwo" type="checkbox">Only two options</input></td>
                    </tr>
                    <tr>
                        <td>Option 4</td>
                        <td><textarea id="textarea4" name="option4" rows="3" cols="35"></textarea></td>
                        <td><input id="onlyThree" type="checkbox">Only three options</input></td>
                    </tr>
                    <tr>
                        <td>Correct Option</td>
                        <td>
                            <input id="radio1" type="radio" name="correctAnswer" value="1">1</input>
                            <input id="radio2" type="radio" name="correctAnswer" value="2">2</input>
                            <input id="radio3" type="radio" name="correctAnswer" value="3">3</input>
                            <input id="radio4" type="radio" name="correctAnswer" value="4">4</input>
                        </td>
                    </tr>
                    </tbody>
                </table>
                <br><br>
                 <s:submit name="Submit"/>
            </s:form>

问题
使用者
协调员
问题:
选择1
选择2
选择3
只有两个选择
选择4
只有三种选择
正确的选择
1.
2.
3.
4.



更新:

试试这个(如果你点击“仅两次”或“仅三次”,我想它们都必须是“未选中的”)

禁用的表单字段无法提交,因为它们不是“成功的”。基本上,当您的表单通过设计提交时,它们不会自动提交

您可以尝试将一个函数绑定到表单的提交事件,以重新启用所有已禁用的框,使它们“成功”并提交(并将它们设置为合理的默认值,以便您知道用户已禁用它们,而不是将它们留空,等等)

[编辑:这是基于OP进行两次编辑之前的原始帖子,所以YMMV。]

$('#yourForm').bind('submit',function(){
    $(this).find(':disabled').removeAttr('disabled').val('disabledByUser');
    return true;
}

当然,您发布的代码被包装在
$(document).ready(function(){})中
$.ready(函数(){})您刚才没有包含在示例中,对吗


对吗?

这里没有任何错误,如果您显示更多代码,可能会出现错误。OP没有这个问题。请确保!如果你不这样做,这种奇怪的事情就会发生!
$('#yourForm').bind('submit',function(){
    $(this).find(':disabled').removeAttr('disabled').val('disabledByUser');
    return true;
}