"수표"필드를 기존 수표 가입 템플릿에 추가하려고합니다. dept1, dept2 ...., not_listed와 같은 부서 목록으로 구성된 드롭 다운을 구현하려고합니다. not_listed를 선택하면 사용자가 사용자 지정 부서를 입력 할 수있는 텍스트 상자를 표시하고 Not Listed가 아닌 데이터베이스에 부서 값을 저장하려고합니다.form_for select에서 선택한 값을 기준으로 빈 텍스트 상자 표시
다음은 코드입니다.
<div class="border-form-div">
<h3 class="text-center">Create a new account</h3>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="form-group">
<%= f.email_field :email, :autofocus => true, :placeholder => "Email address", class: "form-control", required: false %>
</div>
<div class="form-group">
<%= f.password_field :password, :placeholder => "Password", class: "form-control", required: false %>
</div>
<div class="form-group">
<%= f.password_field :password_confirmation, :placeholder => "Confirm password", class: "form-control", required: false %>
</div>
<div class="form-group">
<%= f.select :department, options_for_select(["dept1", "dept2", "dept3", "dept4", "Not Listed"]), class: "form-control", html: { id: "dept-id"} %>
</div>
<div>
<ul><%= f.text_field :department, :placeholder => "enter your department", html: {id: "not_listed_1"} %></ul>
</div>
<script>
$(document).ready(function(){
$('#dept-id').change(function() {
var selected = $(this).val();
if(selected == 'Not Listed'){
$('#not_listed_1').show();
}
else{
$('#not_listed_1').hide();
}
});
});
</script>
<br>
<div class="text-center">
<div class="form-group">
<%= f.submit "Sign up", :class => "btn btn-primary", :id => "page[sign_up]" %>
<%= link_to "Cancel", new_user_session_path, class: "btn btn-default", :id => "page[cancel]" %>
</div>
</div>
나는 JQuery와 좋은 아닙니다. 어떤 사람이 내가 잘못 가고있는 곳을 지적 할 수 있습니까?
위 코드의 문제점은 무엇입니까? – tpdietz
페이지가로드 될 때 텍스트 상자가 표시됩니다. 그 텍스트 상자가 드롭 다운에서 선택되지 않은 경우에만 나타 내기를 원합니다. – draghori
기본적으로 'html : {id : "not_listed_1", style : "display : none"}을 사용하여 텍스트 상자를 숨기거나'class : 숨겨진 "텍스트 상자 – Vijai