Javascript 通过输入选项更改窗体操作

Javascript 通过输入选项更改窗体操作,javascript,html,Javascript,Html,嗨,我是初学者程序员,需要关于java的专业建议。 我正试图通过输入数据来更改我的表单操作。 比如,我的表单操作是“”,如果我输入'abc',它就会变为“” 这就是我目前所拥有的 <body> <form action="http://ddd.com"+"/"+"addr1"+"/"+"addr2", id="frm"> <input type="text" name=addr1> <input type="text" name=addr2&

嗨,我是初学者程序员,需要关于java的专业建议。 我正试图通过输入数据来更改我的表单操作。 比如,我的表单操作是“”,如果我输入'abc',它就会变为“” 这就是我目前所拥有的

<body>
  <form action="http://ddd.com"+"/"+"addr1"+"/"+"addr2", id="frm">
  <input type="text" name=addr1>
  <input type="text" name=addr2>
  <input type="submit" onclick=(this.form.frm.value)>
  </form>
</body>


请给我一个答案。谢谢:)

您可以在表单提交中调用javascript函数,在该函数中,您可以访问所有输入值以创建新url,然后进行ajax调用。 例如:


姓名:
年龄:
函数makeSearch(){
//从输入字段获取值以创建url
警报(“进行AJAX调用的代码”);
返回false;
}
确保您的javascript函数在任何情况下都应返回false。

尝试这样做

1.获取from的
操作
属性

    function sub(){
    form.action += text1 + text2;
 }document.getElementById("submit"). onclick = "sub()";
2.当输入字段值更改时,添加change
EventListener
,并使用输入字段值执行新的表单操作。然后提交表单

input=document.querySelectorAll('input')//获取所有输入元素
form=document.querySelector(“#frm”)//形成
formaction=form.getAttribute('action')//获取窗体的当前操作
//警惕(形成);
forEach(函数(输入,索引){//为每个输入添加事件侦听器
input.addEventListener('change',function()){
var value=this.value;//获取更改的输入字段值
var finalaction=formaction+“\/”+value;//对表单进行最后操作
控制台日志(最终激活);
form.setAttribute('action',finalaction);//将最终操作设置为当前操作
form.submit();//最终从
});
});


首先需要jquery:将输入分配给变量

var input = document.getElementsByTagName("input");
var text1 = input[0].text, text2 = input[1].text;
然后:将表单元素分配给变量

var form = document.getElementById("frm");
第三:定义单击
submit
时要调用的函数,该函数将文本添加到表单的
action
属性中

    function sub(){
    form.action += text1 + text2;
 }document.getElementById("submit"). onclick = "sub()";

这样,您的操作将在函数关闭后更改。

很遗憾,我无法为您的问题添加注释,因此我将在此处作出回应

我想你可能对这个问题处理得不对。如果您使用表单提交给codeigniter,您可以将这些值作为常规GET或POST进行传递。如果您只是“链接”到codeigniter页面,并且需要通过路径,那么您可以使用location.href来完成

但要回答上述问题,您可以这样做:

var frm=document.getElementById('frm'),
addr1=document.getElementById('addr1'),
addr2=document.getElementById('addr2'),
btn=document.getElementById('submit'),
baseAction=frm.action;
btn.addEventListener('click',函数(evt){
evt.preventDefault();
var frmAction=基本动作,
addr1Val=addr1.value.trim(),
addr2Val=addr2.value.trim();
如果(addr1Val!=''){
frmAction+=addr1.value.trim();
}
如果(addr2Val!=''){
frmAction+=“/”+addr2Val;
}
控制台日志(frmAction);
//以下将用于提交表格
//frm.action=frmAction;
//提交
//或者你可以像这样链接。。。
//location.href=frmAction;
});


你介意给出你想要的结果吗?你想从codeigniter获取数据吗?如果是这种情况,我建议构建URL,因为codeigniter可以轻松获取这种格式。。如果我输入abc和def,它就会像这样弹出“”这样
    function sub(){
    form.action += text1 + text2;
 }document.getElementById("submit"). onclick = "sub()";