自动填充数据被javascript的onchange事件覆盖

Autofill data gets overwritten by onchange event of javascript

本文关键字:onchange 事件 覆盖 javascript 填充 数据      更新时间:2023-09-26

所以我面临着一个非常烦人的问题。我最初有一个包含所有空字段的表单。现在,用户可以通过选择单选按钮"yes"选项来选择使用默认值集。

如果用户选择使用默认值集,那么我使用脚本用默认值集填充所有表单字段。到目前为止,一切都很顺利。

问题是我的选择下拉列表未设置默认值。调试后,我发现它正在设置,但随后触发了 JS 的 On Change 事件,该事件正在使用来自 ajax 响应的数据集填充下拉列表。

如果用户未单击下拉列表并更改了某些内容,如何停止要触发的更改事件。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<input type="radio" value="1" name="rdChoice"> Yes! Set Default Value
<input type="radio" value="0" name="rdChoice"> No! I have to fill data
<hr>
First Name : <input type="text" name="txtFirstName" id="txtFirstName"><br>
Last Name : <input type="text" name="txtLastName" id="txtLastName"><br>
Country : 
<select onchange="getState()" id="selCountry">
    <option>Choose</option>
    <option>India</option>
    <option>Japan</option>
    <option>US</option>
</select>
</body>
</html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function getState()
    {
        console.log("get state");   
    }
    $(function()
    {
        $( 'input[name="rdChoice"]:radio' ).change(
            function()
            {
                if(this.value==1)
                {
                    $("#txtFirstName").val("Paresh");
                    $("#txtLastName").val("Gami");
                    $("#selCountry").val("India");
                }
                else
                {
                }
            }
        );
    });
</script>

如果用户单击选择框,则只调用getState。