validate.js需要「名」的標籤,當您使用jQueryUI的自動完成組合框。 生成的代碼不具有id
和name
屬性,因此需要根據需要添加它們。
在_create
功能組合框,您需要添加:
select = this.element.hide(),
select_id = select.attr('id'),
selected = select.children(":selected"),
和:
input = $("<input>")
.attr('id', select_id + '_combobox')
.attr('name', select_id + '_combobox')
.appendTo(wrapper)
這樣的,給定的HTML這樣的:
<select id="dropDownlist">
<option...
</select>
的autocomplete-combobox
會生成所需的input
元素與id
和d name
屬性設置爲dropDownlist_combobox
這個我從jQueryUI的,自動完成,組合框在此自動生成的HTMLS標籤完全控制 您可以再申請驗證規則給input
元素(dropDownlist-combobox
) 這看起來像:
$('#dropDownlist_combobox').rules('add', {
required: true,
messages: {
required: 'Please enter your combobox'
}
});
瞧:)
利用這一點,但是,你將獲得與所顯示的input
標籤和「下拉菜單」按鈕的錯誤消息的問題。爲了解決這個問題,你會需要一些額外的代碼:在http://jsfiddle.net/XhU78/
$.validator.setDefaults({
errorPlacement: function (error, element) {
if (element.context.id.indexOf('_combobox') == -1)
error.insertAfter(element);
else
error.appendTo(element.parent());
}
});
的例子所有的代碼都可以,我希望對你有用:)
cbCountry是底層'select'還是生成的'input'的名字?你能發佈你正在使用的代碼嗎? –
@Andrew,cbCountry是'select'。這裏是示例代碼 - http://jsfiddle.net/and7ey/8kLbf/('cbCity'用於那裏而不是'cbCountry')。但是,在jsfiddle中,驗證對我來說工作不正常。 –
'