如何在blazor中启用/禁用输入

时间:2019-03-05 12:08:27

标签: html5 disabled-input blazor

我正在尝试基于Enable/Disable在Blazor中time一组checkbox输入;对于类型为inputs的{​​{1}}而言,以下解决方案有效,对于类型为button的输入,则不可行:

有效的按钮输入解决方案

time

提示无效的时间输入

<button type="button"
    class="@this.SetButton">
</button>

[Parameter] public bool state{get;set;} 
public string SetButton() {
       string result = state == true ? "" : "disabled";
       return result;
}

PS 在第一种情况下,<input bind="@IsDisabled" type="checkbox" /> <input class="@this.GetGroupState()" type="time" /> protected bool IsDisabled { get; set; } public string GetGroupState() { return this.IsDisabled ? "disabled" : ""; } 作为参数来自另一个bool,因此我不绑定它。但是,在第二种情况下,它绑定到component

5 个答案:

答案 0 :(得分:3)

要禁用元素,您应该使用disabled attribute

我对您的代码做了一些修改,这将满足您的要求。 Blazor将基于disabled值自动添加或删除IsDisabled属性。

您还应该在按钮上使用Disabled属性。这是更好的做法。

<button type="button" disabled="@IsDisabled"></button>
<input bind="@IsDisabled" type="checkbox" />

<input disabled="@IsDisabled" type="time" />

@functions {
    protected bool IsDisabled { get; set; }
}

您仍然可以将其与应用CSS类以对禁用元素进行样式化结合起来。由你决定。

答案 1 :(得分:2)

还有另一种方法可以实现这一目标。

<fieldset disabled=@ShouldBeDisabled>
  Your input controls in here will be disabled/enabled by the browser
</fieldset>

答案 2 :(得分:2)

您还可以获得直接禁用按钮的值作为表达式

<input disabled="@(MyCondition ? true : false)" type="checkbox" />     

答案 3 :(得分:0)

Blazor 使 disabled="false" 消失。这种说法是不正确的!唯一的方法就是像这样使用 if 语句。

@if (IsDisabled)
{
    <input type="checkbox" @bind="Value" disabled />
}
else
{
    <input type="checkbox" @bind="Value" />
}

答案 4 :(得分:0)

有趣的是,这是有效的

 <input type="submit" class="btn btn-primary" value="Send" 
        disabled="@OperationIsInProgress" />

但这没有

@code{
    protected bool OperationIsInProgress { get; set; }
}
`Dim I As Integer, J As Integer
 Dim MonTableau As Variant
 Dim ListePositionsMots As String
 Dim MonRange As Range


With ActiveDocument

     If .TablesOfContents.Count = 0 Then
        MsgBox "Aucune table des matières dans le document !", vbInformation
        Exit Sub
     End If

     With .TablesOfContents(1)
          J = 1
          For I = 1 To .Range.Words.Count
              If J <= 2 Then
                 If .Range.Words(I) <> "" Then ListePositionsMots = ListePositionsMots & I & ","
                 J = J + 1
              End If
              If .Range.Words(I) = Chr(13) Then J = 1
          Next I

          ListePositionsMots = Mid(ListePositionsMots, 1, Len(ListePositionsMots) - 1)
          MonTableau = Split(ListePositionsMots, ",")
          For I = LBound(MonTableau) To UBound(MonTableau)
              Set MonRange = ActiveDocument.TablesOfContents(1).Range
              MonRange.SetRange Start:=MonRange.Words(MonTableau(I)).Start, End:=MonRange.Words(MonTableau(I)).End
              With MonRange
                   If .Text <> Chr(9) Then
                      .Font.ColorIndex = wdRed
                      .Case = wdUpperCase
                    End If
              End With
              Set MonRange = Nothing
          Next I

      End With
End With`