simple_form を使用しています。選択メニューとテキスト入力を使用して、のようなものを作成するにはどうすればよいですかSelect or add another
。
アプリは、選択メニューまたはテキスト入力から 1 つの値のみを受け取ります。
ユーザーの混乱を避けるために、両方ではなくどちらか一方を検証することもお勧めします。
simple_form を使用しています。選択メニューとテキスト入力を使用して、のようなものを作成するにはどうすればよいですかSelect or add another
。
アプリは、選択メニューまたはテキスト入力から 1 つの値のみを受け取ります。
ユーザーの混乱を避けるために、両方ではなくどちらか一方を検証することもお勧めします。
これを解決するには、JavaScript と Ruby を組み合わせて使用してみてください。ユーザーがドロップダウンで利用可能なものとは異なる値を入力したい場合は、JS にその入力のキーダウン イベントをリッスンさせ、ドロップダウンをクリアする必要があります。
$(".input_field").bind('keydown', function() {
$(".select_field").val('0') // this should be a default blank value
});
これにより、ユーザーが入力したときに選択がクリアされます。同様に、ユーザーがドロップダウンから選択したときに入力をクリアしたいと思いませんか?
$(".select_field").change(function() {
// Let's only clear the input field if the value is not the default null value
if ( $(this).val() != 0 ) {
$(".input_field").val('');
}
});
これにより、フロントエンドの対話が処理されます。コントローラーでは、追加のロジックを実行する必要があります。
def create
object.new(...)
if params[:select] and params[:input]
# Overwrite the select with the input value
object.attribute = params[:input]
end
object.save
end
入力値が選択に取って代わることを想定しているため、それらが最も送信されている場合は、選択値を入力値で上書きしてから、オブジェクトの保存を続行できます。
これはあなたが探しているものですか?入力された値が関係を持つ新しいオブジェクトを作成すると想定されていたかどうかは不明です。お役に立てれば。