将提交时的jQuery数组值作为隐藏输入传递

时间:2014-07-14 21:41:12

标签: javascript jquery html

按下按钮,以下代码将显示一条消息,其中包含从所有复选框中收集的值。但是我希望将这些值(由函数返回)作为隐藏输入传递给提交。

<form action="script.php" method="post">
<input type="checkbox" name="chb1" value="html" />HTML<br/>
<input type="checkbox" name="chb2" value="css" />CSS<br/>
<input type="checkbox" name="chb3" value="javascript" />JavaScript<br/>
<input type="checkbox" name="chb4" value="php" />php<br/>
<input type="checkbox" name="chb5" value="python" />Python<br/>
<input type="checkbox" name="chb6" value="net" />Net<br/>
<input type="button" value="Click" id="btntest" />
</form>

<script type="text/javascript"><!--
function getSelectedChbox(frm) {
  var selchbox = [];        
  var inpfields = frm.getElementsByTagName('input');
  var nr_inpfields = inpfields.length;
   for(var i=0; i<nr_inpfields; i++) {
    if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(inpfields[i].value);
  }
  return selchbox;
}


document.getElementById('btntest').onclick = function(){
  var selchb = getSelectedChbox(this.form);   
  alert(selchb);
}
//-->

</script>

1 个答案:

答案 0 :(得分:0)

我看到有人喜欢你试图编写我的路由器界面,所以我会帮忙。

  1. 将您的表单设为id,因为您以后需要它

    <form action="script.php" method="post" id="the_form">
    
  2. 在表单中添加隐藏的输入

    <input type="hidden" name="values" id="values" value="" />
    
  3. 表单中的按钮成熟为真实提交(惊人)

    <input type="submit" ...
    
  4. 你的&#34; getSelectedChbox()&#34;功能很棒;不要在那里改变任何东西,只是想给你祝贺它,它是一个很棒的功能

  5. 现在,它说document.getElementById('btntest').onclick - 摆脱所有这些并添加此代码;这段代码将完成其余的工作。

    document.getElementById('the_form').onsubmit = function(){
        var selchb = getSelectedChbox(this); 
        var values = selchb.join(', ');
    
        if(!values.length){
            alert('There was an error. You have to select some checkboxes. ');
            return false;
        }
    
        document.getElementById('values').value = values;
        if(!confirm(" Are you interested in submitting this form now? If not, click accordingly. "))
            return false;
    }
    

  6. 或者只是将整个内容复制粘贴到名为script.php的文件中:

    <?php echo var_dump(isset($_POST['values']) ? $_POST['values'] : 'Submit first.'); ?>
    
    <form action="script.php" method="post" id="the_form">
        <input type="checkbox" name="chb1" value="html" />HTML<br/>
        <input type="checkbox" name="chb2" value="css" />CSS<br/>
        <input type="checkbox" name="chb3" value="javascript" />JavaScript<br/>
        <input type="checkbox" name="chb4" value="php" />php<br/>
        <input type="checkbox" name="chb5" value="python" />Python<br/>
        <input type="checkbox" name="chb6" value="net" />Net<br/>
    
        <input type="hidden" name="values" id="values" value="" />
        <input type="submit" value="Click" id="btntest" />
    
    </form>
    
    <script type="text/javascript"><!--
    function getSelectedChbox(frm) {
        var selchbox = [];        
        var inpfields = frm.getElementsByTagName('input');
        var nr_inpfields = inpfields.length;
        for(var i=0; i<nr_inpfields; i++) {
            if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) 
                selchbox.push(inpfields[i].value);
        }
        return selchbox;
    }
    
    
    document.getElementById('the_form').onsubmit = function(){
        var selchb = getSelectedChbox(this); 
        var values = selchb.join(', ');
    
        if(!values.length){
            alert('There was an error. You have to select some checkboxes. ');
            return false;
        }
    
        document.getElementById('values').value = values;
        if(!confirm(" Are you interested in submitting this form now? If not, click accordingly. "))
            return false;
    }
    //-->
    
    </script>
    

    玩得开心。