【问题标题】:Passing a variable through form action using jquery使用 jquery 通过表单操作传递变量
【发布时间】:2014-08-02 06:59:53
【问题描述】:

如何通过附加到多个表单操作的 jquery 发送变量?我需要能够通过表单操作发送#clientId#,但我在 jquery 中设置表单操作,具体取决于用户选择的下拉选项。例如: if($('#uTransaction').val() == 1){ $('#toolActions').attr('action','networkTools-transfer.cfm?otherID=#clientId#);

这是我的代码:

HTML
 <form id="toolActions" name="toolActions" method="post" action="">
    <div id="action-div">
        <table class="action-table">
                <tr class="action-row">
                        <td>Selected Tools Action:
                            <select name="uTransaction" id="uTransaction" >
                                <option value="">--Select One--</option>
                                <cfloop query="networkTool_Actions">
                                    <cfoutput><option  value="#networkTool_Actions.Tool_Actions_ID#">#networkTool_Actions.Tool_Actions_DESC#</option></cfoutput>
                                </cfloop>
                            </select>
  </div>
</form>

jQuery

$('#toolActions').submit(function() {

          if($('#uTransaction').val() == 1){
              $('#toolActions').attr('action','networkTools-transfer.cfm');
          }
          if($('#uTransaction').val() == 2){
              $('#toolActions').attr('action','networkTools-accept.cfm');
          }
          if($('#uTransaction').val() == 3){
              $('#toolActions').attr('action','networkTools-retire.cfm');
          }
          if($('#uTransaction').val() == 4){
              $('#toolActions').attr('action','networkTools-recover.cfm');
          }
          if($('#uTransaction').val() == 5){
              $('#toolActions').attr('action','networkTools-repair.cfm');
          }
      });

【问题讨论】:

  • 您的 JS 是在 CF 文件中还是单独的 JS?

标签: jquery forms coldfusion action


【解决方案1】:

试试这个:

<script> 
    $('#uTransaction').change(function() { //when you will select any option in dropdown

    var val=$('#uTransaction').val();//get value of that option 
              if(val == 1){  

              window.location.href='networkTools-transfer.cfm?otherID='+val;
              }
              if(val == 2){
               window.location.href='networkTools-accept.cfm?otherID='+val;
              } 
              if(val == 3){
            window.location.href='networkTools-retire.cfm?otherID='+val;
              }
              if(val == 4){
                window.location.href='networkTools-recover.cfm?otherID='+val;
              }
              if(val == 5){ 
                window.location.href='networkTools-repair.cfm?otherID='+val;
              }
          });
  </script> 



 if user wants form to submit ,then try this

 <script> 
     $('#uTransaction').change(function() { //when you will select any option in dropdown

        var val=$('#uTransaction').val();//get value of that option 
                  if(val == 1){  

                $('#toolActions').attr('action','networkTools-transfer.cfm?otherID='+val);
                  } 
                  if(val == 2){
                 $('#toolActions').attr('action','networkTools-accept.cfm?otherID='+val);
                  } 

              }); 
 </script> 
    and add this in html:

    <input type="submit" name="" value="submit"/>

【讨论】:

  • 这个解决方案不会让表单无用吗?因为没有帖子会发生?
  • 是的,如果我们使用上面的脚本,就不需要表单了。
  • 哦,我明白了,它只存在重定向。
  • 我已经更新了我的答案,如果他想提交表单......我们必须在html中添加提交按钮。
  • 他犯了 2 个错误...他使用 .submit 代替 .change ...他没有得到 select 的值...而且他没有添加提交按钮... .他只在表格中添加了动作。
【解决方案2】:

你可以试试这个:

$('input').on('some event',function(){
    $('form').get(0).setAttribute('action', 'create_new_url');
}

我猜这可能类似于“模糊”/“更改”上的“选择”?

这是一个 jsfiddle http://jsfiddle.net/95gff/

当您更改选择输入时,请通过 firebug 或您喜欢的调试器检查表单上的操作 你会看到行动确实发生了变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2021-02-07
    • 2016-07-19
    • 2011-07-23
    • 2015-11-05
    • 2017-01-06
    • 2014-11-07
    相关资源
    最近更新 更多