Подтвердить что ты не робот

Как отключить кнопку более элегантно

У меня есть один из моих просмотров следующий код бритвы:

@if (item.PMApproved != true) {
                    <input type="button" class="btnresetinvoice button" value="Reset" data-invoiceid="@item.InvoiceId" />
                }
                else {
                    <input type="button" class="btnresetinvoice button" value="Reset" data-invoiceid="@item.InvoiceId" disabled="disabled" />
                }

Довольно грубая. В основном я хочу отключить кнопку в определенном состоянии, так как вы сможете работать с кодом. Что было бы более желательным способом сделать это?

4b9b3361

Ответ 1

Я не знаю, на каком языке вы используете, но вы можете переместить инструкцию if ближе к фактической разнице между двумя строками:

<input type="button" class="btnresetinvoice button" value="Reset"
       data-invoiceid="@item.InvoiceId"
       @{ if(item.PMApproved != true) { 
             @:disabled="disabled" 
        } }
/>

Ответ 2

Средство с разметкой, поддерживаемое новым методом расширения:

public static class HtmlExtensions
{
   public static HtmlString DisabledIf(this HtmlHelper html, bool condition)
   {
      return new HtmlString(condition ? "disabled=\"disabled\"" : "");
   }
}

В ваших представлениях повторно используйте wazoo:

<button type="reset" @Html.DisabledIf(someCondition)>Clear Fields</button>

Красиво многократно используемое, а рендеринговая разметка очень проста в отношении пробелов:

<button type="reset" disabled="disabled">Clear Fields</button>

Ответ 3

попробуйте это

<button type="submit" disabled="@(!item.PMApproved)"></button>

Ответ 4

Помощник может помочь:

public static class HtmlExtensions
{
    public static IHtmlString ApproveButton(this HtmlHelper htmlHelper, MyViewModel item)
    {
        var button = new TagBuilder("input");
        button.Attributes["type"] = "button";
        button.Attributes["value"] = "Reset";
        button.AddCssClass("btnresetinvoice");
        button.AddCssClass("button");
        button.Attributes["data-invoiceid"] = item.InvoiceId.ToString();
        if (item.PMApproved)
        {
            button.Attributes["disabled"] = "disabled";
        }
        return new HtmlString(button.ToString(TagRenderMode.SelfClosing));
    }
}

а затем:

@Html.ApproveButton(item)

Ответ 5

<input type="button" value="Reset" @{@((!item.PMApproved) ? null : new { disabled = "disabled" })}; />

Нет необходимости в этом раздутом коде, просто сохраните его: -)

Ответ 6

<button @(isEnabled ? null : "disabled")>Butt</button>

Ответ 7

Возможный простой способ:

<input type="button" @(item.PMApproved ? "disabled" : "") />

Ответ 8

Использование бритвы asp.net mvc5:

@if(condition)
{
   <button data-toggle="collapse" data-target="#content">Details</button>
}
else
{
   <button disabled>Details</button>
}

Это предотвращает попытки включения кнопки из DevTools, потому что бритва не видна для DevTools