php - Javascript 元素 .value 没有按我预期的方式变回

标签 php javascript function

我是该网站的长期访问者,但第一次发布。

我是 JavaScript 的新手,我已尽最大努力制作一个脚本,该脚本将根据所选参数动态更新表单。当用户选择(在本例中)部件号时,他们可以单击“更新”按钮,相应地更改其他七个字段。万一出现错误,我制作了一个重置​​零件号字段的重置按钮(这是它损坏的地方)然后如果您再次单击“更新”按钮,其他七个字段也应该重置。我希望这是有道理的。在零件号列表的一半左右,我尝试了该功能并且效果很好,但在途中的某个地方坏了。现在,唯一可以重置其应有方式的部分是“oempma.value”。

无论如何,对于冗长的帖子感到抱歉,我会继续写下去。这是我的表单代码 (new.php):

这里是调用该函数的 dynamicupdate.js 文件:

function dynamicupdate(form, prefix, part_number, flight_control, lat_position, long_position, vert_position, location, material, oempma) 
    {
        if(form)
            {
                if(part_number.value === "C6CF1124-1")
                    {
                    flight_control.value = "Aileron";
                    lat_position.value = "Left";
                    long_position.value = "Fwd";
                    vert_position.value = "N/A";
                    location.value = "Wing";
                    material.value = "Carbon Steel";                    
                }

                if(part_number.value === "C6CW1031-1")
                    {
                    flight_control.value = "Aileron";
                    lat_position.value = "";
                    long_position.value = "N/A";
                    vert_position.value = "";
                    location.value = "Wing";
                    material.value = "Carbon Steel";                    
                    }
                        if (part_number.value === "C6CW1031-1" && lat_position.value === "" && vert_position.value === "")
                        {
                        alert ("You must manually enter the \"Lat Position\" and \"Vert Position\" for this cable.");
                        }


            }

        else 
            {
            flight_control.value = "";
            lat_position.value = "";
            long_position.value = "";
            vert_position.value = "";
            location.value = "";
            material.value = "";
            }


        if(prefix.value === "PDM" || prefix.value === "TB" || prefix.value === "JNL")
            {
            oempma.value = "PMA";
            }
        else if(part_number.value === "")
            {
            oempma.value = "";
            }
        else
            {
            oempma.value = "OEM";
            }

        return;
    }

此函数也位于 dynamicupdate.js 文件中,但出于某种原因我无法将其保留在上面的代码块中。

function resetsome(form, prefix, part_number)
    {
    part_number.value = "";
    prefix.value = "";
    }

我已尝试通过几种方法解决此问题,包括将一些大块的 .js 文件删除回到它过去工作的位置,以防我进一步弄乱某些东西,但这并没有解决它。我也阅读了大量有关适用于这种情况的 JavaScript 语言的资料,但我可以看出我做错了什么。

最佳答案

我想问题是这样的:

if(form){/*...*/}

当 form 为真时,不会执行重置字段的代码。

试试这个:

 function dynamicupdate(form, prefix, part_number, flight_control, lat_position, long_position, vert_position, location, material, oempma) 
    {
      if(!form)return;


        if(part_number.value !== ""){
                if(part_number.value === "C6CF1124-1")
                    {
                    flight_control.value = "Aileron";
                    lat_position.value = "Left";
                    long_position.value = "Fwd";
                    vert_position.value = "N/A";
                    location.value = "Wing";
                    material.value = "Carbon Steel";                    
                }

                if(part_number.value === "C6CW1031-1")
                    {
                    flight_control.value = "Aileron";
                    lat_position.value = "";
                    long_position.value = "N/A";
                    vert_position.value = "";
                    location.value = "Wing";
                    material.value = "Carbon Steel";                    
                    }
                        if (part_number.value === "C6CW1031-1" && lat_position.value === "" && vert_position.value === "")
                        {
                        alert ("You must manually enter the \"Lat Position\" and \"Vert Position\" for this cable.");
                        }


            }

        else {//when part_number.value is empty reset the fields
            flight_control.value = "";
            lat_position.value = "";
            long_position.value = "";
            vert_position.value = "";
            location.value = "";
            material.value = "";
            }


        if(prefix.value === "PDM" || prefix.value === "TB" || prefix.value === "JNL")
            {
            oempma.value = "PMA";
            }
        else if(part_number.value === "")
            {
            oempma.value = "";
            }
        else
            {
            oempma.value = "OEM";
            }

        return;
    }

关于php - Javascript 元素 .value 没有按我预期的方式变回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12781081/

相关文章:

php - 如何将所有图库图像上传到 Android 中的服务器?

javascript - if else 验证方法之间的区别

javascript - 当 parent 的观察变化时,Knockoutjs 更新 child

javascript - 使用 GreaseMonkey 停止加载缓慢的脚本

java - 识别类本身后使用类函数

c++ - 如何编写接受无限参数的函数?

php - Websockets,并识别独特的同行[PHP]

php - 我可以在 php 中编辑 mysqli_result 对象吗?

java - 使用变量值来选择要更改的 UI 标签

php - Laravel + MongoDB + Elasticsearch,Elasticquent的配置问题