2
次のコードはテキストボックスで機能し、デフォルトのバリデータ関数を自分でオーバーライドして、入力を無効にしてreturn false
にします。しかし、これはFilteringSelect
入力では全く機能しません。次のコードは常にtrueを返します。実際には私のカスタム検証関数を入力することはありません。FilteringSelect入力でカスタム検証関数を起動できません
これは、期待されるものとは異なるバリデータを実行していることを意味します。または、誤った入力にバリデータを設定しています(レンダリング時に複数あります)。
var customValidator = function (value) {
console.log("custom validator: ", value);
return false; //force an invalid result
};
formelement.theInput.set('validator', customValidator);
var res = formelement.theInput.validate();
console.log("res: ", res);
ウィジェットテンプレートは、この
<div data-dojo-attach-point="formelement" style="position: absolute; left: 222px; top: 75px; width: 200px; border-width: 1px; border-style: none; border-color: black;" class="fe-dropdown resize-handle" id="4180a54b-3931-472e-8c5f-212bfddc88b2" widgetid="uniqName_10_10">
<div class="dijit dijitReset dijitInline dijitLeft fe-element dijitTextBox dijitComboBox dijitValidationTextBox dijitTextBoxFocused dijitComboBoxFocused dijitValidationTextBoxFocused dijitFocused" id="widget_dijit_form_FilteringSelect_28" role="combobox" aria-haspopup="true" data-dojo-attach-point="_popupStateNode" widgetid="dijit_form_FilteringSelect_28" aria-disabled="false" popupactive="true" aria-expanded="false" aria-owns="dijit_form_FilteringSelect_28_popup">
<div class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer" data-dojo-attach-point="_buttonNode" role="presentation">
<input class="dijitReset dijitInputField dijitArrowButtonInner" value="▼ " type="text" tabindex="-1" readonly="readonly" role="button presentation" aria-hidden="true">
</div>
<div class="dijitReset dijitValidationContainer">
<input class="dijitReset dijitInputField dijitValidationIcon dijitValidationInner" value="Χ " type="text" tabindex="-1" readonly="readonly" role="presentation">
</div>
<div class="dijitReset dijitInputField dijitInputContainer">
<input class="dijitReset dijitInputInner" type="text" autocomplete="off" data-dojo-attach-point="textbox,focusNode" role="textbox" aria-autocomplete="both" tabindex="0" id="dijit_form_FilteringSelect_28" aria-required="false" value="" aria-invalid="false" maxlength="25" style="font-family: Arial; font-weight: 400; font-style: normal; color: black; text-decoration: none; text-align: left; background-color: transparent;">
<input type="hidden" value="CA">
</div>
</div>
</div>
それは作るんセンス? –
バリデータの面白い使用 – Radex
私はこのコードをテストしましたが、これはうまくいきました(バリデータ、テキストボックス、filteringselect、numbertextboxなどを使用するすべての入力タイプに対して)、ありがとうございました。 – erotavlas