Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs使用ng href对下拉/选择重定向进行错误验证_Javascript_Html_Angularjs_Validation_Angularjs Ng Href - Fatal编程技术网

Javascript Angularjs使用ng href对下拉/选择重定向进行错误验证

Javascript Angularjs使用ng href对下拉/选择重定向进行错误验证,javascript,html,angularjs,validation,angularjs-ng-href,Javascript,Html,Angularjs,Validation,Angularjs Ng Href,我目前正在使用angularjs的ng href和一个带有ng模型的select html元素,其中我使用ng href链接到“selectedItem”(来自ng模型)。当没有选择任何内容时,我无法验证或提供错误,我想知道我将如何做到这一点。此外,我的ng href也可以工作,我认为它在Plunker上没有相同的功能 以下是我的html代码: <form name="linkForm" ng-controller="MainCtrl"> <select name="li

我目前正在使用angularjs的ng href和一个带有ng模型的select html元素,其中我使用ng href链接到“selectedItem”(来自ng模型)。当没有选择任何内容时,我无法验证或提供错误,我想知道我将如何做到这一点。此外,我的ng href也可以工作,我认为它在Plunker上没有相同的功能

以下是我的html代码:

 <form name="linkForm" ng-controller="MainCtrl">
  <select name="link" ng-model="selectedItem" 
      ng-options="item as item.name for item in items"></select>
      <option value=""></option>  
      <span class="error" ng-show="linkForm.link.$dirty && linkForm.link.$invalid">Please select a website</span>    
  <a ng-href="{{selectedItem.id}}">Let's go</a>
 </form>
这是我的演示:

您可以使用ng,单击链接,然后在控制器中处理验证

  $scope.go = function() {
      if (!$scope.selectedItem) {
        alert("You have to select")
      } else {
        window.location.href = $scope.selectedItem.id;
      }
  }
并且认为:

  <a ng-click="go()">Let's go</a>

您只需将
所需
添加到选择项中,即可做出验证所需的选项。但是,您还需要删除对
bankLoginForm.bankLogin.$dirty
的检查,因为在用户修改下拉列表之前,它不会变脏。要使href在下拉列表无效时消失,可以在其上添加相反的复选框

<select name="bankLogin" ng-model="selectedItem" 
          ng-options="item as item.name for item in items" required>
          <option value=""></option>  </select>
              <span ng-show="bankLoginForm.bankLogin.$invalid">Select bank</span>
    <a ng-href="{{selectedItem.id}}" ng-show="!bankLoginForm.bankLogin.$invalid">Let's go</a>

选择银行

很抱歉没有澄清这一点,但我不希望在按下“让我们走”之前显示Select Bank span元素。等等,您希望href出现并可单击,即使其中没有有效的目标?不想让用户知道他们的目标是无效的,直到他们尝试点击它?你有没有碰巧看到我刚刚做的更新?你确定这对用户来说没有多大意义吗?谢谢,这是有意义的
<select name="bankLogin" ng-model="selectedItem" 
          ng-options="item as item.name for item in items" required>
          <option value=""></option>  </select>
              <span ng-show="bankLoginForm.bankLogin.$invalid">Select bank</span>
    <a ng-href="{{selectedItem.id}}" ng-show="!bankLoginForm.bankLogin.$invalid">Let's go</a>