我认为这是:
@using(Html.BeginForm())
{
<label> Condition Target </label>
<input type="text" name="ConditionTarget1" id="ConditionTarget1"/>
<input type="text" name="ConditionTarget2" id="ConditionTarget2"/>
<br/>
<label> Condition Object </label>
<select name="ConditionObject" id="ConditionObject">
<option value="1"> Condition 1 </option>
<option value="2"> Condition 2 </option>
</select>
<br/>
<input type="submit"/>
}
在我的控制器中(例如):
public ActionResult Validate(int value)
{
return Json(value == 1, JsonRequestBehavior.AllowGet);
}
我希望在conditionobject更改时,应调用Validate服务器方法,并且根据结果conditiontarget文本字段必须变为必需(在这种情况下,如果选择了选项2)。我尝试了jQuery远程验证,但它验证了自己的选择。你能救我吗?
答案 0 :(得分:0)
$('#ConditionObject').change(function(){
$.ajax({
type: "GET",
url: "servercode.asp",
data:this.val();
success:function(data)
{
if(data==1)
{
$('#ConditionTarget1').addClass('required');//add required validation ,sample only
}
}
});
});
然后在验证期间检查ConditionTarget1是否有任何验证
$('input:submit').click(function(){
if($('#ConditionTarget1').hasClass('required'))
{
alert('oops validation required');
return false;
}
});
答案 1 :(得分:0)
你真的需要调用服务器端方法吗? 试试这个:
$('#ConditionObject').on("change",function(){
if($(this).val() == 1)
{
$('#ConditionTarget1').addClass("Required");
}
else
{
$('#ConditionTarget1').removeClass("Required");
}
});
提交时:<input id="submitForm" type="submit"/>
$("#submitForm").on("click", function(event){
if($('#ConditionTarget1').hasClass("Required"))
event.preventDefault();
});