我正在为我的项目使用kendo控件。我使用jquery验证来验证客户端的控件,但由于jquery验证不适用于kendo控件,所以我使用kendo验证器来验证控件。
我正在使用MVC 5项目的数据注释验证。以下是示例dojo。
它工作正常,但验证仅出现在焦点输出或模糊事件上。有没有办法验证控制值的变化控制,如jquery验证?
更新
以下是帮助我解决此问题的完整解决方案:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>
{
ManageButtonClicks manageButtonClicks;
public MyAdapter(Context context, List< ModelClass > data, ManageButtonClicks manageButtonClicks)
{
inflater = LayoutInflater.from(context);
this.mDataList = data;
this.ctx = context;
util = new Util(ctx);
this.manageButtonClicks = manageButtonClicks;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
ViewGroup nonPrimeRow = (ViewGroup) inflater.inflate(R.layout.rowlayout, parent, false);
MyViewHolder_NON_PRIME holderNonPrime = new MyViewHolder_NON_PRIME(nonPrimeRow);
return holderNonPrime;
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position)
{
ModelClass current = mDataList.get(position);
MyViewHolder_NON_PRIME holder_not_prime = (MyViewHolder_NON_PRIME) holder;
holder_not_prime.setdata(current);
}
class MyViewHolder extends RecyclerView.ViewHolder
{
public MyViewHolder(View itemView)
{
super(itemView);
}
}
public class MyViewHolder_NON_PRIME extends MyViewHolder
{
private Button btnSave;
public MyViewHolder_NON_PRIME(View view)
{
super(view);
btnSave = (MonteButton) view.findViewById(R.id.btnSave);
}
public void setdata(final ModelClass current)
{
btnSave.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
manageButtonClicks.saveBtnClick();
}
});
}
}
答案 0 :(得分:2)
你有两种方法来实现你的目的:
如您所知,Kendo UI Editor会创建与HTML表单元素不同的元素。其他JavaScript编辑器以类似的方式工作。实际的HTML是使用CSS(display: none;
)隐藏的,其中存在问题。 默认情况下,jQuery Validation会忽略隐藏的输入字段。表单元素上有validation data-*
个属性,但由于它是隐藏的,当不引人注目的验证触发时,编辑器会被忽略。
您有两种方法可以解决此问题,并完美地使用这两种技术。阅读Making the Kendo UI Editor Work With jQuery Validations,如果您有任何实施问题,请阅读Kendo UI NumericTextBox With jQuery Validation作为 NumericTextBox
的示例然后,在验证的情况下,您可能无法分配正确的CSS类。您可以阅读adding jquery validation to kendo ui elements。
您应该为验证目的实现所需的事件。在这里,你需要onChange
事件才能像jQuery Unobtrusive Validation一样工作。使用以下代码描述了该做什么:
$(document).ready(function () {
function widgetChange() {
//place validation logic
};
$("#dropdownlist").kendoDropDownList({
dataTextField: "text",
dataValueField: "value",
dataSource: data,
change: widgetChange
});
})
您可能希望同时使用!所以看看.Net Mvc 3 Trigger (other than submit button) Unobtrusive Validation
dojo用于实施上一个解决方案,该解决方案将pattern="\d+"
添加到搜索输入并附带验证消息。 filtering
事件为同一输入调用验证。 请注意您应该根据UI元素使用所需的事件,我们在autocomplete使用了filtering
而不是DropDownList使用change
。
我最近发现了一个新的实现,它很适合尝试和测试。这可以在aspnet-mvc getting-started validation
获得