0

私のフォームは少し複雑で、すべてがランディング ページにありますwelcome/index.html.erb

このフォームには、 productsusersの 2 つのタブがあります。

製品タブの下には、次のような機能があります。

  • 新しい製品を作成する
  • 製品のリストを表示

各製品には、次のようなオプションがあります。

  • ユーザーを製品に追加する

新しい製品の作成をクリックすると、新しい製品のフォームを持つ div が開いています。

使用してみclient_side_validationましたが、成功しませんでした (Google 検索から、この gem は Rails 3.2.13 ではサポートされていないようです)。

jqueryを使用してフォームを送信するときに検証エラーを表示するにはどうすればよいですか?

this.submit(function() {
  //$('#createPolicy').slideToggle();
  $.post(this.action, $(this).serialize(), null, "script");
  return false;
})
return this;

ご協力いただきありがとうございます。

4

1 に答える 1

1

ajax POST はまったく必要ありません。submit関数が false を返す場合、ページはリロードされません。

$('#button').submit(function() {
  if($('input#field_1').val().length===0){
  $('.errors').text("Can't be blank") } 
  return false
  else if(#more conditionals) {

  } #...
  else{
return true}
})

このようにして、検証はユーザー側とサーバー側の両方で機能します。AJAXリクエストを介してそれを行いたい場合は、trueの場合にメソッドの応答を提供する必要があります。これは、falseの場合にページのコンテンツを作り直す必要があり、エラーメッセージを提供します。やるべきことがたくさんあります。検証が一意性などの DB データに基づいている場合にのみ、リクエストが必要になると思います。

于 2013-07-08T21:40:29.803 に答える