jQuery Validate远程方法-如何发送多个变量

时间:2019-02-25 15:27:29

标签: jquery jquery-validate

正在使用用户名可用性功能。对于更改用户名的现有用户,我想将新的用户名和该人的ID传递给远程功能。此功能在后端工作正常(如果包含ID,它将查找不包含ID的用户名)。

添加ID(ID = sid的隐藏表单字段)会引发堆栈溢出错误“超出最大调用堆栈大小”。传递用户ID和建议的新用户名的正确方法是什么?

new_username: {
  remote: {
    url: [url to function],
    type: 'post',
    data: {'sid':sid, 'new_username':new_username},
    dataFilter: function(data, type){
        return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
    }
  }
}

HTML表单如下:

<form class="stdForm" id="jqv" name="stForm" action="" method="post">
    <input type="hidden" name="sid" id="sid" value="12345"/>
    <div>
      <label for="new_username">Login Username</label>
      <input type="text" name="new_username" id="new_username" value="[current username]" />
    </div>
    <div>
        <input type="submit" value="Update"/>
    </div>
</form>

完整的javascript是一个很长的jquery验证脚本。表单中的其他任何地方均未引用字段“ new_username”和“ sid”。当我只发送用户名(不带ID)时,我有一个单独的规则集可以工作:

username_check: {
  remote: {
    url: [url to function],
    type: 'post',
    dataFilter: function(data, type){
        return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
    }
  }
}

其中username_check是表单中字段的ID。

1 个答案:

答案 0 :(得分:-1)

如果我理解您的问题,则无需发送“ new_username”,因为它是自动发送的:

data: {'sid':sid},

看看this