【问题标题】:Unable to get the value of hidden field via jquery using serialize() function无法通过 jquery 使用 serialize() 函数获取隐藏字段的值
【发布时间】:2018-02-05 04:53:08
【问题描述】:

我正在使用Tag Manager plugin 为我的表单创建标签,并使用jquery 中的serialize() 函数将值传递给php。当我检索值时,我得到一个空字符串,但没有 serialize() 函数,标签创建器工作正常。

<input type="text" name="tags" placeholder="Tags" class="tm-input form-control tm-input-info" id="collaborationsSoughtInput" name="collaborationsSoughtInput" />

这是我的 jquery 函数

function adduser() {
    $.post("functions/add-user.php", $("#registerForm").serialize()).done(function(data) {
      var result = $.trim(data);
      if (result == "OK") {
        window.location.href = "login";
      } else {
        console.log("Register error :" + result);
      }
    });
  }

还有php代码

  $collaborationsSoughtInput = $con->real_escape_string($_POST['hidden-tags']);

这是工作的example

如果完整的表格在这里

<form action="" id="registerForm" class="mb-4" style="margin-bottom: 50px" method="post" enctype="multipart/form-data">
  <div class="form-group has-feedback row">
    <label for="fullnameInput" class="col-sm-3 col-form-label" required>Full Name *</label>
    <div class="col-sm-8">
      <input type="text" class="form-control" id="fullname" name="fullname" required>
    </div>
    <span id="fullNameError" class="color-red hide-me">Full Name Error</span>
  </div>
  <div class="form-group has-feedback row">
    <label for="usernameInput" class="col-sm-3 col-form-label">Username *</label>
    <div class="col-sm-8">
      <input minlength="4" type="text" class="form-control" id="username" name="username">
    </div>
    <span id="usernameError" class="color-red hide-me">Userame Error</span>
  </div>
  <div class="form-group has-feedback row">
    <label for="passwordInput" class="col-sm-3 col-form-label" required>Password *</label>
    <div class="col-sm-8">
      <input class="form-control" type="password" value="hunter2" id="password" name="password">
    </div>
    <span id="passwordError" class="color-red hide-me">Password Error</span>
  </div>
  <div class="form-group has-feedback row">
    <label class="col-sm-3 col-form-label" for="collaborationsSoughtInput">Collaborations Sought *</label><br/>
    <div class="col-sm-8">
      <input type="text" name="tags" placeholder="Tags" class="tm-input form-control tm-input-info" id="collaborationsSoughtInput" name="collaborationsSoughtInput" />
    </div>
    <span id="collaborationsError" class="color-red hide-me">Collaborations Error</span>
  </div>
</form>

在控制台中,我得到了这个

<b>Notice</b>:  Undefined index: hidden-tags in ...

【问题讨论】:

  • 名称是“标签”而不是“隐藏标签”
  • 隐藏标签由标签管理器插件自动创建。这是获取用户输入的值的唯一方法。我试过没有 serialize() 函数,它工作正常。

标签: javascript php jquery serialization


【解决方案1】:

您的 .serialize() 的整个输出为空?看来您的表单选择器可能是错误的。

【讨论】:

  • 不,除标签部分外,会获取表单的其他值。
  • 您确定 元素在表单中吗?如果序列化不接受它,这似乎很奇怪。
  • 是的,输入在表单里面。
猜你喜欢
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
相关资源
最近更新 更多