在我的页面上,我有几个在运行时生成的框,如果这些框是“空的”,我想进行验证,那么用户应该不能继续,如果这些框包含一些值,那么用户可以继续。
我的验证在 JQuery 的帮助下运行良好(在下面添加)。但是,截至目前,当我手动刷新页面时,ISSSUE 正在工作,生成的框背后的原因是在“部分视图”中。所以现在我希望部分视图应该重新加载/刷新
下面是我添加的用于验证的 JQuery:
<script>
$(document).ready (function () {
if ($('.type').length == $('.type:empty').length){
$("#stepAutomapConfirm").attr("disabled", true);
$("#stepAutomapConfirm").addClass("disabled").removeClass("active");
}
else {
$("#stepAutomapConfirm").attr("disabled", false);
$("#stepAutomapConfirm").addClass("active").removeClass("disabled");
}
});
</script>
这是工作 JQuery 的小提琴:http: //jsfiddle.net/aasthatuteja/xJtAV/,
注意:它在小提琴上工作,但不在我的部分视图中,下面是动作控制器:
[LoggingAspect]
[HttpGet]
public ActionResult AutomapInformation(int medCenterId, string medCenterSerialNumber, string viewName)
{
ProvisioningStepDto provisioningStepDto = ProvisioningHubProxy.Instance.GetOrCreateProvisioningStep(medCenterId, medCenterSerialNumber, WizardStep.AutomapInformation);
AutomapInformationViewModel viewModel = null;
try
{
var vaultInfo = ProvisioningHubProxy.Instance.GetMedCenterVault(medCenterSerialNumber);
viewModel = new AutomapInformationViewModel
{
MedCenterId = medCenterId,
MedCenterSerialNumber = medCenterSerialNumber,
Step = WizardStep.AutomapInformation,
VaultInfo = vaultInfo
};
if (vaultInfo.Count != 0)
{
return PartialView(viewName, viewModel);
}
}
catch (Exception ex)
{
LogManager.Logger.Error(ex);
}
viewModel = new AutomapInformationViewModel
{
MedCenterId = medCenterId,
MedCenterSerialNumber = medCenterSerialNumber,
Step = WizardStep.AutomapInformation
};
return PartialView("StepErrorView", viewModel);
}
[HttpPost]
public ActionResult AutomapInformation(AutomapInformationViewModel viewModel)
{
LogManager.Logger.Info("ProvisioningController:AutomapInformation; [HttpPost] MedCenterId: ({0}), MedCenterSerialNumber: ({1})", viewModel.MedCenterId, viewModel.MedCenterSerialNumber);
ProvisioningStepDto provisioningStepDto = ProvisioningHubProxy.Instance.GetProvisioningStep(viewModel.MedCenterSerialNumber, viewModel.Step);
provisioningStepDto.ProvisionStepStatusId = (int)ProvisioningStepStatus.Complete;
provisioningStepDto.VerifiedBy = "set current user"; //TODO: set the current user once authentication has been figured out
ProvisioningHubProxy.Instance.UpdateProvisioningStep(provisioningStepDto, viewModel.MedCenterSerialNumber);
return GetNextStep(viewModel.MedCenterId, viewModel.MedCenterSerialNumber, viewModel.Step);
}
以下是单击“自动映射”按钮生成表格的 HTML 标记:
<div id="vault_placeHolder">
@VaultRenderer.BuildVaultHtmlProvision(Model.VaultInfo, "MedCenterVault", 510, 850, 0.5)
</div>
<div role="button" class="marginTop50 marginBottom">
<input type="button" id="stepAutomap" value="Automap" class="active" />
<input type="button" id="stepAutomapBack" value="Back" class="active marginLeft50" />
<input type="button" id="stepAutomapConfirm" value="Confirm & Proceed" class="active marginLeft10" />
</div>
注意:我还尝试在单击按钮时添加我的 JQuery 函数,但它不起作用,因为还需要刷新。我也尝试添加 reload(); 在我的函数结束时带有一些 setTime() 但这也没有帮助,因为没有生成该时间范围内的“框”。
如果您需要任何其他信息,请告诉我。
请建议!