1
幫我理解這一點。爲什麼FilteringSelect以聲明性dijit形式導致無效提交?
是不是dijit.form.FilteringSelect
(從ValidationTextBox
延伸)默認情況下應該有屬性required = false
?
爲什麼簡單地在下面的聲明式表單中包含FilteringSelect會自動導致dijit.form.Form.isValid() == false
?
即使手動將過濾選擇的required
prop設置爲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.");
}
});
});
這是行不通的? 'friendInput.set(「required」,false);' – Frode
似乎有效,是的。謝謝。我認爲我在理解方面的差距是相信get()和set()是對底層標籤的屬性進行操作的方法,並不是所有的widget的屬性。我現在看到[這個問題](http://stackoverflow.com/questions/5107722/set-value-of-dijit-form-textarea)得到同樣的東西。 – Nolsto