0

在我的页面上,我有几个在运行时生成的框,如果这些框是“空的”,我想进行验证,那么用户应该不能继续,如果这些框包含一些值,那么用户可以继续。

我的验证在 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() 但这也没有帮助,因为没有生成该时间范围内的“框”。

如果您需要任何其他信息,请告诉我。

请建议!

4

0 回答 0