Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 如何在页面加载时禁用。更改功能_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 如何在页面加载时禁用。更改功能

Javascript 如何在页面加载时禁用。更改功能,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,在我的$(document).ready()函数中,我有一个绑定到集合或单选按钮的.change事件。但是,如果用户提交的表单有错误,页面将使用用户选择的值重新加载。这会导致单选按钮.change功能在每次加载页面时启动,我不希望这样做。如何禁用此功能 编辑 这里是完整的函数,之前没有发布,因为它实际上是一个热混乱的中间,现在正试图保持这篇文章的可读性。p> 仅供参考-如果用户提交表单后出现错误,则我需要页面按照用户点击提交按钮时的方式加载表单。由于我们根据单选按钮选择显示一组特定的div和sp

在我的
$(document).ready()
函数中,我有一个绑定到集合或单选按钮的
.change
事件。但是,如果用户提交的表单有错误,页面将使用用户选择的值重新加载。这会导致单选按钮
.change
功能在每次加载页面时启动,我不希望这样做。如何禁用此功能

编辑

这里是完整的函数,之前没有发布,因为它实际上是一个热混乱的中间,现在正试图保持这篇文章的可读性。p> 仅供参考-如果用户提交表单后出现错误,则我需要页面按照用户点击提交按钮时的方式加载表单。由于我们根据单选按钮选择显示一组特定的

div
span
元素,因此我使用了
trigger('change')
方法。是否有任何方法可以检测该操作是否在页面加载期间发生

    $('input[name=TransactionType]').change(function (e) {
        //Clear any messages from previous transaction
        $('.error').text('');
        $('.success').text('');

        //Display fieldset Submit and Cancel(back to search) link
        $('#PageDirection').show();
        $('#AgentInformation').show();

        //Display input fields
        var radioValue = $(this);

        if (radioValue.attr('id') == "Enroll" || (radioValue.attr('id') == "ModT")) {
            //Enable and disable input boxes
            $('span').not('#AllInput').hide();
            $('#AllInput').show();
            $('#PayFrequency').show();
            $('#refNumberInput').show();

            //Set tooltips
            $('#AccountType').removeAttr("title");
            if (radioValue.attr('id') == "Enroll") {
                $('#PaymentFrequency').removeAttr("title");
                $('.req').show();
                $('#refNumberInput').show();
                $('#enrollNote').show();
            } else {
                $('#PaperStatement').show();
                $('#PaymentFrequency').attr("title", "Select the frequency to pay the distributor");
                $('#refNumberInput').show();
            }
        } else if (radioValue.attr('id') == "New") {
            $('span').not('#NewMessage').hide();
            $('#NewMessage').show();
            $('.req').show();
            $('#refNumberInput').show();

        } else if (radioValue.attr('id') == "ModA") {
            $('#AllInput').show();
            $('#AgentIdSpan').show();
            $('.req').show();
            $('#UnenrollMessage').hide();
            $('#NewMessage').hide();
            $('#PayFrequency').hide();
            $('#PaperStatement').hide();
            $('#refNumberInput').show();
            $('#AgentId').attr("title", "Enter the Agent ID to be modified");

        } else if (radioValue.attr('id') == "Clone") {
            $('span').not('#AgentIdSpan').hide();
            $('#AgentIdSpan').show();
            $('.req').show();
            $('#AgentId').attr("title", "Clone EFT onto this Agent ID");

        } else if (radioValue.attr('id') == "Unenroll") {
            $('span').not('#UnenrollMessage').hide();
            $('#UnenrollMessage').show();
            $('.req').show();
            $('#refNumberInput').show();

        }

        if (radioValue.attr('id') != "Clone") {
            $('.alwaysReq').show();
        };
    }).filter(':checked').trigger('change');

如果您不关心自动完成,您可以在
表单上设置
autocomplete=“off”
。您还可以将当前字段值与它的值进行比较,以查看它是否由浏览器自动填充。

您可以在jquery ready函数中使用“on”或“delegate”。 像这样:

   $(document).delegate("input[name=TransactionType]","change", function(){
        $('.error').text('');
        $('.success').text('');
   });

document.ready
通常不会调用change函数。只有手动更改复选框或受其他函数影响的同一事件,而不是在
document.ready
中,才会调用它


请删除
.trigger('change')
方法,因为它会触发
文档上的更改方法。准备好了吗

如何更改页面加载上的单选按钮?HTML表单是什么样子的?除非调用trigger(),否则更改函数不会在每次加载页面时启动。它只是注册并在更改时启动。如果您通过编程更改状态,更改功能甚至不会启动,您必须实际更改收音机,或者调用trigger()。@adeneo,他可能有这个问题,因为浏览器的自动完成功能会触发更改事件。我调用trigger,是我的错。复制这个函数的一部分,因为中间有一大堆代码,忘记把它粘贴到最后。不幸的是,如果用户输入错误,表单需要像用户提交时一样重新加载。由于我们使用
.change
事件来显示一组特定的
div
span
,我(认为)我需要使用
.trigger
方法。