Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 - Fatal编程技术网

Javascript 更改“选择”选项上的窗体操作和隐藏输入值

Javascript 更改“选择”选项上的窗体操作和隐藏输入值,javascript,jquery,Javascript,Jquery,我想根据选择选项更改我的表单操作,下面的代码工作正常: function chgAction() { var form = document.form; console.log('chgAction()'); console.log(form.ddownOption.selectedIndex); switch (form.ddownOption.selectedIndex) { case 1: form.action = "http:

我想根据选择选项更改我的表单操作,下面的代码工作正常:

function chgAction() {
    var form = document.form;

    console.log('chgAction()');
    console.log(form.ddownOption.selectedIndex);

    switch (form.ddownOption.selectedIndex) {
    case 1:
        form.action = "http://myform/option1";
        break;
    case 2:
        form.action = "http://myform/option2";
        break;
    }
}
但是,我还需要根据相同的选择更改隐藏字段中的值:

function chgAction() {
    var form = document.form;

    console.log('chgAction()');
    console.log(form.ddownOption.selectedIndex);

    switch (form.ddownOption.selectedIndex) {
    case 1:
        form.action = "http://myform/option1";
        form.getElementById(option_dates).name = "option1_dates";
        break;
    case 2:
        form.action = "http://myform/option2";
        form.getElementById(option_dates).name = "option2_dates";
        break;
    }
}
以上这些都不行,我不知道该怎么做。我得到一个未找到的函数错误

HTML:


--请选择--
红外光谱
红外光谱

请提供帮助。

问题在于隐藏元素:

1.在
表单上
我们不能使用
getElementById()
需要使用
文档

2.Id变量,而不是字符串

 function chgAction() {
        var form = document.form;

        console.log('chgAction()');
        console.log(form.ddownOption.selectedIndex);

        switch (form.ddownOption.selectedIndex) {
        case 1:
            form.action = "http://myform/option1";
            document.getElementById('option_dates').name = "option1_dates";
            break;
        case 2:
            form.action = "http://myform/option2";
            document.getElementById('option_dates').name = "option2_dates";
            break;
        }
    }

问题在于获取隐藏的元素:

1.在
表单上
我们不能使用
getElementById()
需要使用
文档

2.Id变量,而不是字符串

 function chgAction() {
        var form = document.form;

        console.log('chgAction()');
        console.log(form.ddownOption.selectedIndex);

        switch (form.ddownOption.selectedIndex) {
        case 1:
            form.action = "http://myform/option1";
            document.getElementById('option_dates').name = "option1_dates";
            break;
        case 2:
            form.action = "http://myform/option2";
            document.getElementById('option_dates').name = "option2_dates";
            break;
        }
    }

如果要更改表单操作,则在更改任何select值时都应该更改

<script>
        // firt check select event fired 
        $("#ddownOption").on("change",function(e){
            currentVal = $(this).val();
            var url = "";
            var optionName = "";
            switch(currentVal){
                case 1:
                    url = "http://myform/option1";
                    optionName = "option1_dates";
                    break;
                case 2:
                    url = "http://myform/option2";
                    optionName = "option2_dates";
                    break;
                default:
                    url = "http://myform/defaultOption";
                    optionName = "defaultoption_dates";
                    break;
            }

            $("#form").attr("href",url);
            $("#option_dates").attr("name",optionName);
        });
    </script>

//首先,选中已触发的事件
$(“#ddownOption”)。关于(“更改”,函数(e){
currentVal=$(this.val();
var url=“”;
var optionName=“”;
开关(currentVal){
案例1:
url=”http://myform/option1";
optionName=“option1\u日期”;
打破
案例2:
url=”http://myform/option2";
optionName=“option2\u日期”;
打破
违约:
url=”http://myform/defaultOption";
optionName=“defaultoption\u日期”;
打破
}
$(“#表单”).attr(“href”,url);
$(“选项日期”).attr(“名称”,选项名称);
});
在代码
选项中,日期不是一个值,而是一个名称,但没有单引号,javascript将其视为js值
所以把你的代码改成


document.getElementById('option_dates')。name=“you_value”

如果要更改表单操作,则在更改任何选择值时,该操作都应更改

<script>
        // firt check select event fired 
        $("#ddownOption").on("change",function(e){
            currentVal = $(this).val();
            var url = "";
            var optionName = "";
            switch(currentVal){
                case 1:
                    url = "http://myform/option1";
                    optionName = "option1_dates";
                    break;
                case 2:
                    url = "http://myform/option2";
                    optionName = "option2_dates";
                    break;
                default:
                    url = "http://myform/defaultOption";
                    optionName = "defaultoption_dates";
                    break;
            }

            $("#form").attr("href",url);
            $("#option_dates").attr("name",optionName);
        });
    </script>

//首先,选中已触发的事件
$(“#ddownOption”)。关于(“更改”,函数(e){
currentVal=$(this.val();
var url=“”;
var optionName=“”;
开关(currentVal){
案例1:
url=”http://myform/option1";
optionName=“option1\u日期”;
打破
案例2:
url=”http://myform/option2";
optionName=“option2\u日期”;
打破
违约:
url=”http://myform/defaultOption";
optionName=“defaultoption\u日期”;
打破
}
$(“#表单”).attr(“href”,url);
$(“选项日期”).attr(“名称”,选项名称);
});
在代码
选项中,日期不是一个值,而是一个名称,但没有单引号,javascript将其视为js值
所以把你的代码改成


document.getElementById('option_dates')。name=“you_value”

将隐藏的更改更改为以下内容

document.getElementById('option_dates').name = "option1_dates";


将“隐藏”的更改更改为以下内容

document.getElementById('option_dates').name = "option1_dates";


您使用表单而不是文档。它应该是“document.getElementById()”。您也没有将id值括在引号中

function chgAction() {
var form = document.form;

console.log('chgAction()');
console.log(form.ddownOption.selectedIndex);

   switch (form.ddownOption.selectedIndex) {
   case 1:
        form.action = "http://myform/option1";
        document.getElementById("option_dates").name = "option1_dates";
        break;
   case 2:
        form.action = "http://myform/option2";
        document.getElementById("option_dates").name = "option2_dates";
        break;
   }
}

您使用表单而不是文档。它应该是“document.getElementById()”。您也没有将id值括在引号中

function chgAction() {
var form = document.form;

console.log('chgAction()');
console.log(form.ddownOption.selectedIndex);

   switch (form.ddownOption.selectedIndex) {
   case 1:
        form.action = "http://myform/option1";
        document.getElementById("option_dates").name = "option1_dates";
        break;
   case 2:
        form.action = "http://myform/option2";
        document.getElementById("option_dates").name = "option2_dates";
        break;
   }
}


你可以发布你的html结构吗?添加的html结构在调用它的select之前是否包含js函数?看起来代码试图更改隐藏字段的
name
,而不是
value
。这是打字错误吗?是的,我在调用它的select之前包含js函数。你能发布你的html结构吗?添加的html结构你在调用它的select之前包含js函数吗?看起来代码试图更改隐藏字段的
名称
,而不是
。这是一个输入错误吗?是的,我在调用它的select之前包含了js函数是的,我的示例确实适用于表单操作,我还需要更改隐藏的输入名称!是的,我知道。。。我只告诉过你另一种做事情的方法,以及解决你生活中问题的方法code@MeenashJain我尝试了你的代码,但它没有做任何事情,没有给我正确的url或正确的选项。\u datesYes,我的示例对表单操作有效,我还需要更改隐藏的输入名称!是的,我知道。。。我只告诉过你另一种做事情的方法,以及解决你生活中问题的方法code@MeenashJain我尝试了你的代码,但它没有做任何事情,没有给我正确的url,也没有给我正确的选项_dates我按照你的建议进行了修改,但是#选项_dates名称没有被更改。我得到一个错误:传递给getElementById()的空字符串。var元素=document.getElementById(location.hash.substring(1));问题似乎出在
location.hash.substring(1)
在getElementById()中传递什么?我通过向#option_dates hidden field name属性添加默认值来解决这个问题。感谢Ankit Chaudhary如果我不更改默认的选择选项,即案例0:我得到一个错误:“传递给getElementById()的空字符串”。我如何在上面的代码中设置默认值?我按照您的建议进行了修改,但#选项_日期名称没有更改。我得到一个错误:传递给getElementById()的空字符串。var元素=document.getElementById(location.hash.substring(1));问题似乎出在
location.hash.substring(1)
您在getElementById()中传递了什么?我通过向#选项#添加一个默认值来解决这个问题