Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
Javascript jquery单选按钮更改问题_Javascript_Jquery_Html_Jquery Selectors_Radio Button - Fatal编程技术网

Javascript jquery单选按钮更改问题

Javascript jquery单选按钮更改问题,javascript,jquery,html,jquery-selectors,radio-button,Javascript,Jquery,Html,Jquery Selectors,Radio Button,我有2个单选按钮,我通过单选按钮使一些字段处于活动/非活动状态。但是,当我通过ajax从表单发送数据,然后在不重新加载页面的情况下第二次打开表单时,单选按钮被破坏,即它们不提供活动/非活动功能。 例如,当我单击按钮2时,字段3变为活动状态,我放入所需数据并通过ajax将其发送到服务器,但当我第二次打开对话框时,radiobutton 2仍处于活动状态,当我尝试将ot更改为radiobutton 1时,字段1,2仍处于非活动状态,但当我重新加载页面时,一切正常。怎么了? 以下是我的html代码:

我有2个单选按钮,我通过单选按钮使一些字段处于活动/非活动状态。但是,当我通过ajax从表单发送数据,然后在不重新加载页面的情况下第二次打开表单时,单选按钮被破坏,即它们不提供活动/非活动功能。 例如,当我单击按钮2时,字段3变为活动状态,我放入所需数据并通过ajax将其发送到服务器,但当我第二次打开对话框时,radiobutton 2仍处于活动状态,当我尝试将ot更改为radiobutton 1时,字段1,2仍处于非活动状态,但当我重新加载页面时,一切正常。怎么了? 以下是我的html代码:

<a href="javascript:void(0)" class="add">click here</a>

<div id="dialog-form" title="title">
    <p class="validateTips">All form fields matched with (*) are required</p>
    <form>
        <fieldset>
            <div>
                <div>
                    <label for="name">Name(*)</label>
                    <textarea id="myName" class="text ui-widget-content ui-corner-all"></textarea>
                </div>
            </div>
            <div>
                <label for="perc">percent(*)</label>
                <input type="number" id ="perc"  step="0.5" />
            </div>
            <div> 
            <table>
                <tr>
                <td>
                    <input type="radio" id="but1" name="group1" value="1">1<br>
                </td>
                <td>
                    <input type="radio" id="but2" name="group1" value="2">2<br>
                </td>
                </tr>
                <tr>
                    <td>
                        <table>
                            <tr>
                                <label for="field1">field1 (*)</label>    
                                <input type="text" id="field1" value="" class="group1" > <br>    
                            </tr>
                            <tr>
                                <label for="field2">field2 (*)</label>    
                                <input type="text" id="field2" value="" class="group1" > <br>    
                            </tr>

                        </table>
                    </td>
                    <td>
                            <label for="field3">field3 (*)</label>
                            <input id="field3" type="text" value="" class="group2" >
                    </td>
                </tr>
            </table>
           </div>


        </fieldset>
    </form>
</div>
这里有两种可能性(至少):

您可以清空对话框的内容并再次附加它,您可以确保所有内容都是默认设置的。最容易尝试的方法是创建新的html页面,其中的内容将是您的表单(不需要通常的html标记),并将其加载到您的div中。这与重新加载页面相同。但也要小心,某些浏览器在重新加载页面时往往会保留表单数据,因此它可能不是您实际需要的解决方案:

$("#dialog-form").empty().load("form.html");
另一种方法是使用将所有输入重置为默认值的功能:

$("input").prop("disabled",false);
那么你会把这个代码放在哪里呢?我建议您在打开对话框时执行此操作,有一个专门用于此目的的事件称为dialogopen:

$("#dialog-form").dialog(
{
    open: function(event,ui)
    {
        // reset form
    }
});
您也可以稍后使用以下工具进行设置:

$("#dialog-form").on("dialogopen",function(event,ui)
{
     // reset form
});
但是.dialog()小部件在默认情况下应该这样做,所以请尝试添加

$("#dialog-form").dialog();`
$("#dialog-form").dialog();`