2017-01-24 4 views
1

Я делаю проект Ruby on rails, где я пытаюсь закодировать переменные в форме html, так что мне не нужно вручную писать столько кода. Однако я понял, что если я буду выражать выражение в теге id, JS-код не будет работать. например, <div class="field" id="barcode_type1"> работает, но <div class="field" id="barcode_type#{i}"> где я от 1 до 10 не работает.Циклическое выражение в теге HTML div для работы с Javascript

Я предполагаю, что оценка выражения в html не будет вызываться на стороне Javascript, я также подозреваю, что, возможно, turbolinks не будет ждать, пока тег id будет оцениваться. Так что я подозреваю, что я не могу использовать выражение в теге id или что мне нужно изменить turbolinks.

в моем html.erb

<% for i in 1..10 %> 
    <div class="field" id="type#{i}"> 
     <%= f.label "type#{i}" %> 
     <%= f.select "type#{i}" ,['text','barcode']%> 
    </div> 
    <div class="field" id="barcode_type#{i}"> 
     <%= f.label "barcode_type#{i}" %> 
     <%= f.text_field "barcode_type#{i}" %> 
    </div> 
    </div> 

в моих .js файл

$(document).on('turbolinks:load', function(){ 


if ($('#type1').find('option:selected').val() != "barcode") 
    { 
    $('#barcode_type1').hide(); 
    $("#barcode_type1").attr('disabled','disabled'); 
    } 
    else 
    { 
    $("#barcode_type1").removeAttr('disabled'); 
    $('#barcode_type1').show(); 
    } 

$('#type1').on('change', function(){ 
    if ($('#type1').find('option:selected').val() != "barcode") 
    { 
    $('#barcode_type1').hide(); 
    $("#barcode_type1").attr('disabled','disabled'); 
    } 
    else 
    { 
    $("#barcode_type1").removeAttr('disabled'); 
    $('#barcode_type1').show(); 
    } 
}) ... 

....

ответ

1

Пытаться изменить это:

<div class="field" id="type#{i}"> 

к этому :

<div class="field" id="type<%= i %>"> 

потому что <div class="field" id="type#{i}"> - это простой HTML-код, RoR ничего здесь не изменяет, и ваша HTML-страница выглядит точно так же, как вы писали.

+0

это сработало, спасибо большое – leo277

Смежные вопросы