0

私はこの問題を抱えています。トルネードからデータのベクトルを取得します。このベクトルは「ユーザー」です。私はこのブロックを持っています

{% if users %}
{% for user in users %}
            <form name="form_user_{{ user.id }}" method="post" action="/networks/{{ net.id }}/rights">
              <tr>
                <td>
                  <div>
                    {{ escape(user.name) }}
                    <input type='hidden' name="id" value='{{ user.id }}'>
                  </div>
                </td>
                <td>

                  <label class="radio inline" onclick="document.forms['form_user_{{ user.id }}'].submit();">
                    <input type="radio" name="optionsRadios" id="optionsRadios1" value="0">
                    None
                  </label>
                  <label class="radio inline" onclick="document.forms['form_user_{{ user.id }}'].submit();">
                    <input type="radio" name="optionsRadios" id="optionsRadios2" value="1">
                    Read
                  </label>
                  <label class="radio inline" onclick="document.forms['form_user_{{ user.id }}'].submit();">
                    <input type="radio" name="optionsRadios" id="optionsRadios3" value="4">
                    Read + Commands
                  </label>



                  {{ xsrf_form_html() }}
                </td>

              </tr>
            </form>
            {% end %}
          {% end %}

今、私はこのようなjs関数を持っています:

$(document).ready(function(){
    //function check(){

    {% if users %}
      {% if user.perm == 1 %}

      $('input:radio[name=optionsRadios]:nth(1)').attr('checked',true);
      //$('input:radio[name=sex]')[1].checked = true;

      {% elif user.perm == 4 %}  

      $('input:radio[name=optionsRadios]:nth(2)').attr('checked',true);
      //$('input:radio[name=sex]')[2].checked = true;

      {% else %}

      $('input:radio[name=optionsRadios]:nth(0)').attr('checked',true);
      //$('input:radio[name=sex]')[0].checked = true;

      {% end %}
    {% end %}

  });

しかし、トルネードは、ユーザーのリストが空の場合、変数userは初期化されないと私に言います。したがって、関数をforブロックに呼び出し、関数に名前を付けます。たとえば、function check(){}わかりません...プログラムがforブロックに入った場合にのみ、関数を呼び出すにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

0

{{user.perm}}これを非表示の入力に入れて、js コードから取得できないのはなぜですか?

このようにしたい場合は、次のようにします。

$(document).ready(function(){
    //function check(){

    {% for user in users %}
      {% if user.perm == 1 %}

      $('input:radio[name=optionsRadios]:nth(1)').attr('checked',true);
      //$('input:radio[name=sex]')[1].checked = true;

      {% elif user.perm == 4 %}  

      $('input:radio[name=optionsRadios]:nth(2)').attr('checked',true);
      //$('input:radio[name=sex]')[2].checked = true;

      {% else %}

      $('input:radio[name=optionsRadios]:nth(0)').attr('checked',true);
      //$('input:radio[name=sex]')[0].checked = true;

      {% end %}
    {% end %}

  });
于 2012-09-05T12:50:07.817 に答える