Browse Source

Tag helpers hidden input bug fix

now label & validation is empty when an input is hidden
pull/318/head
Yunus Emre Kalkan 8 years ago
parent
commit
14ab005c6e
  1. 14
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs
  2. 2
      modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/New.cshtml
  3. 1
      modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj

14
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs

@ -52,12 +52,17 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
var inputHtml = RenderTagHelperOutput(inputTag, _encoder);
var label = GetLabelAsHtml(context, output, inputTag, isCheckbox);
var validation = isCheckbox ? "" : GetValidationAsHtml(context, output);
var validation = isCheckbox ? "" : GetValidationAsHtml(context, output, inputTag);
return GetContent(context, output, label, inputHtml, validation, isCheckbox);
}
protected virtual string GetValidationAsHtml(TagHelperContext context, TagHelperOutput output)
protected virtual string GetValidationAsHtml(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag)
{
if (inputTag.Attributes.Any(a => a.Name.ToLowerInvariant() == "type" && a.Value.ToString().ToLowerInvariant() == "hidden"))
{
return "";
}
var validationMessageTagHelper = new ValidationMessageTagHelper(_generator)
{
For = TagHelper.AspFor,
@ -119,6 +124,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
protected virtual string GetLabelAsHtml(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag, bool isCheckbox)
{
if (inputTag.Attributes.Any(a=>a.Name.ToLowerInvariant() == "type" && a.Value.ToString().ToLowerInvariant() == "hidden"))
{
return "";
}
if (string.IsNullOrEmpty(TagHelper.Label))
{
return GetLabelAsHtmlUsingTagHelper(context,output,isCheckbox);

2
modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/New.cshtml

@ -18,6 +18,6 @@
<textarea rows="4" class="form-control" name="Post.Content">@Model.Post.Content</textarea>
</div>
<abp-input asp-for="Post.BlogId" label=" " /> @* TODO: Remove label when the issue is fixed *@
<abp-input asp-for="Post.BlogId"/>
<abp-button type="submit" text="@L["Submit"].Value" />
</form>

1
modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj

@ -27,6 +27,7 @@
<ItemGroup>
<Content Remove="wwwroot\pages\blog\posts\edit.js" />
<Content Remove="wwwroot\pages\blog\posts\new.js" />
</ItemGroup>
</Project>

Loading…
Cancel
Save