在单击"保存"按钮之前,我有一个页面,其中几个文本框不能为空.
<TextBox...
<TextBox.Text>
<Binding Path ="LastName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:StringRequiredValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
Run Code Online (Sandbox Code Playgroud)
我的规则有效.我的文本框周围有一个红色边框,直到我输入一个值.所以现在我想将此验证规则添加到我的其他文本框中.
现在,如何在页面没有错误之前禁用"保存"按钮?我不知道要检查什么是否有任何验证错误.
我想在文本框上使用ValidationRules(及其UI效果),而不实际将任何内容绑定到文本框.
我想使用文本框进行一些输入,这些输入没有绑定到任何东西,但需要在使用ValidationRules丢失焦点后验证输入.
可以吗?
<TextBox.Text>
<Binding Path="" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:IntegersOnlyValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多关于WPF验证的博客文章DataAnnotations
.我在想,如果有使用干净的方式DataAnnotations
作为ValidationRules
对我的实体.
所以没有这个(来源):
<Binding Path="Age" Source="{StaticResource ods}" ... >
<Binding.ValidationRules>
<c:AgeRangeRule Min="21" Max="130"/>
</Binding.ValidationRules>
</Binding>
Run Code Online (Sandbox Code Playgroud)
你必须拥有你的
public class AgeRangeRule : ValidationRule
{...}
Run Code Online (Sandbox Code Playgroud)
我希望WPF Binding能够看到Age属性并查找DataAnnotation,如下所示:
[Range(1, 120)]
public int Age
{
get { return _age; }
set
{
_age = value;
RaisePropertyChanged<...>(x => x.Age);
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法,如果这是可能的?
我有一个带有验证规则的模型,例如:
[['x'], 'integer'],
[['x'], 'unique'],
Run Code Online (Sandbox Code Playgroud)
现在我该如何添加如下规则:
x <100
或类似
x> = 100
我正在创建一个业务规则引擎,并计划向用户提供NRules框架。
https://github.com/NRules/NRules
但是我想知道是否可以从数据库本身生成规则。
我有一个数据库表,其中保存了一些规则。
年龄> 20
名=='约翰'
条件可以是多个,即使属性名称可以更改,也不会硬编码。
我浏览了一篇博客文章,该文章的内容相同,但使用表达式树。
http://coding-time.blogspot.in/2011/07/how-to-implement-rule-engine-in-c.html
我可以使用NRules框架实现相同的功能吗(如果可以),在这里我可以找到一些代码示例。
我目前正在使用Form Validation类(在Codeigniter上)和设置规则.
它有两个参数(codeigniter.com/user_guide/libraries/form_validation.html):
$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]');
Run Code Online (Sandbox Code Playgroud)
但是第三个参数呢?还有第四个......?可能吗?
validation codeigniter callback validationrules codeigniter-2
给定一个验证器扩展AbstractValidator并实现IValidator,我想得到它的规则.似乎没有办法做到这一点?
我收到了以前开发人员的PHP/JS代码,我需要在手机号码字段中添加号码验证.我已经有了HTML验证,但是我需要添加一个,如果有人按下了无效的键,它不会显示为仅稍后用红色突出显示该字段,因为它包含无效的输入.
我已经看过很多正则表达式并且尝试了它们,但是它们或者我需要的效果是:如果输入了字母或特殊字符,不接受也不显示,所有其他输入(数字,键)被接受(我需要根本不显示无效字符,不显示然后删除).正在运行最多的正则表达式是这样的:
function filterNonDigits(evt)
{
var event = evt || window.event;
var keyentered = event.keyCode || event.which;
keyentered = String.fromCharCode(keyentered);
//var regex1 = /[0-9]|\./;
var regex2 = /^[a-zA-Z.,;:|\\\/~!@#$%^&*_-{}\[\]()`"'<>?\s]+$/;
if( regex2.test(keyentered) ) {
event.returnValue = false;
if(event.preventDefault) event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
当我使用注释的regex1(IF条件反转)时,自然它将输入限制为只有数字,从而阻止所有键,如Delete,BackSpace等.当使用regex2时,我仍然无法按下删除或小键盘上的数字.
所以我的问题是,上面的代码可以修改为只接受数字而且还允许键吗?另一个重要的一点是,我需要一种不对这些键使用键码(8,24等)的方法,以确保可以使用所有键盘类型.
所以我的解决方案如下:如果存在"oninput"属性,我使用Ehtesham提供的解决方案,如果不存在,则备份使用Rohan Kumar提供的解决方案.所以它是这样的:
if (obj.hasOwnProperty('oninput') || ('oninput' in obj))
{
$('#mobileno').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
}
else
{
$('#mobileno').on('keypress',function(e){
var deleteCode = 8; var backspaceCode = 46;
var key = e.which;
if ((key>=48 && key<=57) || …
Run Code Online (Sandbox Code Playgroud) 我在Laravel中使用验证规则,并且我正在尝试检查数字中的字符数.
这是我的尝试:
protected static $rules = [
'zip_code' => 'required|size:5|integer'
];
Run Code Online (Sandbox Code Playgroud)
不幸的是,检查邮政编码是5号而不是邮政编码是5个字符.我需要设置哪些规则来检查邮政编码是否正好是5个字符,而不管实际数字是多少?
我对带有嵌套条件的验证规则有疑问。
class StoreRequest extends Request
{
public function authorize(){
return true;
}
public function rules(){
return [
'type_id' => 'required|integer',
'external_id' => 'required_if:type_id,==,3|integer',
];
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,我想:-仅在type_id等于3时检查external_id-并检查它是否为整数。
发布表单时,当我选择等于3的type_id时,规则将起作用。但是,如果我选择另一个type_id(如1或2),则验证不会通过:
external_id必须为整数。
我尝试添加可为空的条件,但required_if不再起作用
你有什么主意吗?
validationrules ×10
validation ×7
wpf ×3
.net ×2
c# ×2
laravel ×2
php ×2
binding ×1
callback ×1
codeigniter ×1
data-binding ×1
javascript ×1
jquery ×1
laravel-5.4 ×1
model ×1
nrules ×1
regex ×1
yii2 ×1