表单数据被截断/截断

时间:2013-10-21 18:52:56

标签: javascript ruby-on-rails forms formtastic

每隔几百次注册,我收到的表单数据就会被破坏,我不确定原因。

应该看起来像:

Parameters: ... "user"=>{"first_name"=>"Bob", "last_name"=>"Smith", "email"=>"example@example.com", ...}

但出于某种原因,我们偶尔会收到如下内容:

Parameters: {"ast_name"=>"Smith", "user"=>{"email"=>... # The last_name field got cut-off and wasn't included in the user params

Parameters: {"5Blast_name"=>"Smith", "user"=>{"email"=> ... # form item user[last_name] was encoded into %5Blast_name] and wasn't included in user array.

Parameters: {"ser"=> {"last_name"=>"Smith"}, "user"=>{"email"=> ... # It seems user[last_name] got truncated into ser[last_name]

我不确定为什么会发生这种情况。我们使用Formtastic来构建我们的注册表单

= simple_form_for resource, :as => resource_name, :url => registration_path(resource_name) do |f|
  - if resource.errors.any?
    .alert.alert-error
      Please correct the following issue: #{resource.errors.full_messages.first}

  = f.input :first_name, :input_html => {"data-validate" => "{required: true}"}
  = f.input :last_name, :input_html => {"data-validate" => "{required: true}"}
  = f.input :email, :input_html => {"data-validate" => "{required: true, email: true}"}
  = f.input :password, :input_html => {"data-validate" => "{required: true, minlength: 6}"}
  = f.input :delivery_zip, :label => "Zip code", :input_html => {"data-validate" => "{required: true, minlength: 5, maxlength: 5, number: true}"}

  %button.btn.next{:type => "submit", :id => "sign-up-button"}
    %span Next

...

:javascript
  $(document).ready(function(){      
    $('#nav_sign_up').addClass('current');
    $('form#new_user').validate();
  });

构建非常无害的HTML:

<form accept-charset="UTF-8" action="/users" class="simple_form new_user" id="new_user" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="[REDACTED]" /></div>                <div class="control-group string required"><label class="string required control-label" for="user_first_name">First name</label><div class="controls"><input class="string required" data-validate="{required: true}" id="user_first_name" name="user[first_name]" size="50" type="text" /></div></div>
                <div class="control-group string required"><label class="string required control-label" for="user_last_name">Last name</label><div class="controls"><input class="string required" data-validate="{required: true}" id="user_last_name" name="user[last_name]" size="50" type="text" /></div></div>
                <div class="control-group email required"><label class="email required control-label" for="user_email">Email</label><div class="controls"><input class="string email required" data-validate="{required: true, email: true}" id="user_email" name="user[email]" size="50" type="email" value="" /></div></div>
                <div class="control-group password optional"><label class="password optional control-label" for="user_password">Password</label><div class="controls"><input class="password optional" data-validate="{required: true, minlength: 6}" id="user_password" name="user[password]" size="50" type="password" /></div></div>
                <div class="control-group string required"><label class="string required control-label" for="user_delivery_zip">Zip code</label><div class="controls"><input class="string required" data-validate="{required: true, minlength: 5, maxlength: 5, number: true}" id="user_delivery_zip" name="user[delivery_zip]" size="50" type="text" /></div></div>
                <button class='btn next' id='sign-up-button' type='submit'>
                  <span>Next</span>
                </button>
</form>

知道是什么导致我们的表单截断last_name字段的第一个,有时是部分吗?

0 个答案:

没有答案
相关问题