首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过javascript提交复选框的值

通过javascript提交复选框的值
EN

Stack Overflow用户
提问于 2016-01-20 12:30:42
回答 6查看 1.8K关注 0票数 1

我试图通过javascript提交表单的值,它同时包含文本和两个复选框。

代码语言:javascript
复制
<script>
  function SubmitFormData2() {
      var preffered_loc = $("#preffered_loc").val();
      var relocation = $(".relocation").val();
      $.post("r_two.php", { preffered_loc: preffered_loc,relocation: relocation },
      function(data) {
       $('#results').html(data);
       $('#myForm2')[0].reset();
      });
  }
</script>

<form id="myForm2" method="post" style="margin-left: -10%;">
   <input type="text" class="form-control" id="preffered_loc" name="preffered_loc">
   <input type="checkbox" name="relocation[]" class="relocation[]" value="Yes">
   <input type="checkbox" name="relocation[]" class="relocation[]" value="No" >
   <input type="button" id="submitFormData2" onclick="SubmitFormData2();" value="Submit" />
</form>

r_two.php

代码语言:javascript
复制
<?
$preffered_loc  =  $_POST['preffered_loc'];
$relocation = $_POST['relocation'];
?>

我可以保存第一个值,但是我不能保存迁移值,谁能告诉我如何保存迁移。这里的要点是,用户也可以同时选择两个复选框。

问题是,即使我选择了第二个选择框,$relocation也只会选择价值是的。有人能更正一下我的代码吗?

EN

回答 6

Stack Overflow用户

发布于 2016-01-20 12:48:33

尝尝这个。

代码语言:javascript
复制
function SubmitFormData2() {
        var preffered_loc = $("#preffered_loc").val();
        var relocation = $("#relocation").is(":checked");
        var relyn = "";
        if(relocation){
            relyn = "Yes";
        }else{
            relyn = "No";
        }
        $.post("r_two.php", { preffered_loc: preffered_loc,relocation: relyn },
        function(data) {
           $('#results').html(data);
           $('#myForm2')[0].reset();
        });
        alert("{ preffered_loc: "+preffered_loc+",relocation: "+relyn+" }");
    }
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm2" method="post" style="margin-left: -10%;">
        <input type="text" class="form-control" id="preffered_loc" name="preffered_loc">
        <input type="checkbox" name="relocation[]" id="relocation" /> 
        <input type="button" id="submitFormData2" onclick="SubmitFormData2();" value="Submit" />
    </form>

正如萨帕尔所说:

  • 您不需要两个复选框,也许您需要一个单选按钮,但是可以选中一个复选框=是,而不是选中=否。我把其中一个拿走了。
  • 你没有身份证搬迁。我改了。
  • 使用jQuery is(":checked"),您将得到一个true或false,因此我将其解析为Yes或No,这是您的代码。
票数 2
EN

Stack Overflow用户

发布于 2016-01-20 12:54:39

由于它是一个复选框,而不是无线电用户可以有多个选择,例如:

代码语言:javascript
复制
<input type="checkbox" name="relocation[]" class="relocation" value="Yes">
<input type="checkbox" name="relocation[]" class="relocation" value="No" >
<input type="checkbox" name="relocation[]" class="relocation" value="Both" >

尝试使用:checked选择器,

代码语言:javascript
复制
$( ".relocation:checked" ).each(function(i,v){
   alert(v.value)
});

这里的演示

票数 1
EN

Stack Overflow用户

发布于 2016-01-20 12:52:14

您根本无法选择复选框元素,因为在选择器中没有包括[]。您可以像这样的Q/A中描述的那样转义括号,也可以简单地删除括号(下面的示例代码是后者)。

我建议使用单选按钮,因为用户可以立即看到选项是什么。(两者都有第三种选择)

下面的代码使用复选框,并将所有选定的选项放入传递的数组中。这将允许用户同时使用这两个选项。

代码语言:javascript
复制
<script>
  function SubmitFormData2() {
      var preffered_loc = $("#preffered_loc").val();
      var relocation = [];
     $(".relocation:checked").each(function () {
        relocation.push ($this.vak ();
     }); // :checked is provided by jquery and will only select a checkbox/radio button that is checked
      $.post("r_two.php", { preffered_loc: preffered_loc,relocation: relocation },
      function(data) {
       $('#results').html(data);
       $('#myForm2')[0].reset();
      });
  }

不要忘记从复选框类中删除[]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34900146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档