Помогите мне понять это.
Разве dijit.form.FilteringSelect
(расширенный с ValidationTextBox
) не должен иметь свойство required = false
по умолчанию?
Почему это просто включаетFilteringSelect в декларативной форме, как показано ниже, автоматически приводит к dijit.form.Form.isValid() == false
?
Даже если вручную установить опцию filteringselect required
в false, результат будет неверным.Я чувствую, что здесь чего-то не хватает.
Я использую инструментарий Dojo версии 1.6.1.
<!-- form.html -->
<form id="form" dojoType="dijit.form.Form">
<table>
<tr>
<td id="friend">
<select name="friend" id="friend-input" dojotype="dijit.form.FilteringSelect"></select>
</td>
</tr>
<tr>
<td>
<input type="submit" id="submit-input" value="Submit" label="Submit" dojotype="dijit.form.Button">
</td>
</tr>
</table>
</form>
/* form.js */
dojo.require("dijit.form.Button");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.Form");
dojo.ready(function() {
var form = dijit.byId("form");
var friendInput = dijit.byId("friend-input");
friendInput.required = false;
dojo.connect(form, "onSubmit", function(event) {
event.preventDefault();
if (form.isValid()) {
alert("Ready to submit data: " + dojo.toJson(form.get("value")));
} else {
alert("Form is not valid.");
}
});
});