2017-06-05 4 views
1

WTFormsのSelectFieldのオプションの1つに「無効」html属性を割り当てる最も簡単な方法は何ですか?あなたは、私が唯一の最初のオプションに「無効」に設定したいと思います見ることができるようにWTFormsのオプションの1つを無効にするSelectField

これは私の以前のコード

<select class="form-control" name="division" data-error="Required!" required> 
    <option value="default" disabled selected>Select something</option> 
    <option value="option1">Option 1</option> 
    <option value="option2">Option 2</option> 
</select> 

です。

このタスクのための私のコードは次のとおりです。

next(form.division.__iter__())(**{'disabled':'true'}) 

、コンソールに印刷機能を使用して、私は適切な出力を見ることができます:

<option disabled="true" selected value="default">Select something</option> 

ライン取り組んでいるが、何とかこの出力が渡されていませんテンプレートに追加します。 代わりにこれが渡されたものです:

<option selected value="default">Select something</option> 

誰かが明らかにしてください。

答えて

1

フィールドを無効にすると、値は渡されなくなります。あなたがしたいことは、無効にする代わりに読み取り専用を使って変数を渡すことです。ここではjQueryを使ってそれを行う方法は次のとおりです。

$('#id_of_option').prop('readonly', true); 

また、私がやったことは

choices = [('', 'please select an option'), ('1', 'option 1'), ('2', 'option 2')] 

、ユーザーが値を選択する必要があり、このようWtformsに選択肢が設定されています。

+0

私はJSの回避策があることを知っています。私のコードは次のとおりです。document.getElementById( 'division')。firstChild.setAttribute( "disabled"、 "true");しかし、私はそれのためのいくつかのより良い解決策があるのだろうかと思っていた。とにかくありがとう – MacZel

+0

読み取り専用に設定してみませんか?ユーザーはそのオプションを使用できず、値はフォームに渡されます。また、上記のようにWtformsを使用して選択肢を設定した場合、ユーザーは最初のオプションを選択できません。それは私がやってきたことであり、うまくいきます。あなたが見つけたものに幸運と好奇心。 – timmyjl12

+0

私は読んだだけでいくつかの誤解がありましたが、それは仕事をします。最後の1つ:オプションフィールドごとに 'id'属性を作成するようにWTFormsを設定するにはどうすればよいですか?それ以外のフィールドは自動的に設定されますが、何らかの理由でオプションフィールドのために働いていません。 – MacZel

関連する問題