2017-06-05 40 views
1

什么是分配“已禁用”的HTML属性的WTForms在SelectField一个选项最简单的方法?禁用的WTForms 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); 

在Wtforms也是我所做的设置选项,其中

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

和这样一个用户必须选择一个值。

+0

我知道有JS的解决方法,我该代码是:的document.getElementById(“分裂”)firstChild.setAttribute(“禁用”,“真”); ,但我想知道是否有更好的解决方案。无论如何感谢 – MacZel

+0

为什么不把它设置为只读?用户不能使用该选项并将值传递给表单。另外,如果您按照上面的说明设置您的选择,那么用户将无法选择第一个选项。这就是我一直在做的事情,它运作良好。祝你好运,并好奇你的发现。 – timmyjl12

+0

好吧,我对于只读有一些误解,但是它完成了这项工作。最后一个:如何设置WTForms为每个选项字段创建“id”属性?对于其他所有领域它自动设置,但不知何故选项领域它不适合我。 – MacZel

相关问题