Javascript 更改时启用Jquery角提交BTN

Javascript 更改时启用Jquery角提交BTN,javascript,php,jquery,angularjs,Javascript,Php,Jquery,Angularjs,伙计们。我有一种代码的平静,这让我感到困惑,我被卡住了 我有一个下拉菜单脚本,当用户选择一个选项时,它可以从数据库中收集数据。选中后,字段将填充与每个字段对应的数据。表单由angularjs验证。即使字段中填充了数据,该按钮仍处于禁用状态 index.php js $("#quick_fill").change(function () { var id = $(this).val(); $.ajax({ url : "php/autofill.php", data :

伙计们。我有一种代码的平静,这让我感到困惑,我被卡住了

我有一个下拉菜单脚本,当用户选择一个选项时,它可以从数据库中收集数据。选中后,字段将填充与每个字段对应的数据。表单由angularjs验证。即使字段中填充了数据,该按钮仍处于禁用状态

index.php js

$("#quick_fill").change(function () {

var id = $(this).val();

    $.ajax({
    url : "php/autofill.php",
    data : {
    "id" : id
    },
    type : "POST",
    dataType : "json",
    success : function(data) {
      console.log(data.fname);
        $("#first").val(data.fname);
        $("#first").removeClass("ng-pristine ng-invalid ng-invalid-required ng-touched");
        $("#first").addClass("ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched");
        $("#last").val(data.lname);
        $("#last").removeClass("ng-pristine ng-invalid ng-invalid-required ng-touched");
        $("#last").addClass("ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched");
        $("#middle").val(data.mname);
        $("#middle").removeClass("ng-pristine ng-invalid ng-invalid-required ng-touched");
        $("#middle").addClass("ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched");
}
    });
});
我的问题是如何启用表单上的提交按钮。当已经填好的时候

HTML表单

<form class="form-horizontal" role="form" name="frm" novalidate="" >

        <div class="form-group">
          <input type="hidden" class="form-control" id="coc" value="<?php printf('%03d',$i);?>">
        </div>

        <div class="form-group" style="padding-left:10px;">
          <div class="col-sm-3"><label>Agency Name:</label>
          <span ng-show="frm.branch.$dirty && frm.branch.$error.required" class="label label-danger" style="margin-left:10px;">Please Pick an Agency</span>
          <span ng-show="frm.branch.$valid" class="glyphicon glyphicon-ok text-success" style="margin-left:10px;"> </span>        
          <div class="col-sm-3"><label>Last Name:</label>
              <span ng-show="frm.last.$dirty && frm.last.$error.required" class="label label-danger" style="margin-left:10px;">This is Required</span>
              <span ng-show="frm.last.$dirty && frm.last.$error.minlength" class="label label-danger" style="margin-left:10px;">Enter Atleast 2 Characters</span>
              <input ng-model="last" ng-minlength="2" name="last" id="last" type="text" class="form-control" placeholder="Last Name" onkeyup="javascript:this.value=this.value.toUpperCase();" required autocomplete="off">
          </div>
            <div class="col-sm-3"><label>Given Name:</label>
              <span ng-show="frm.first.$dirty && frm.first.$error.required" class="label label-danger" style="margin-left:10px;">This is Required</span>
              <span ng-show="frm.first.$dirty && frm.first.$error.minlength" class="label label-danger" style="margin-left:10px;">Enter Atleast 2 Characters</span>
              <input ng-model="first" ng-minlength="2" name="first" id="first" type="text" class="form-control" placeholder="First Name" onkeyup="javascript:this.value=this.value.toUpperCase();" required autocomplete="off">
          </div>
          <div class="col-sm-3"><label>Middle Name:</label>
              <input ng-model="middle" name="middle" id="middle" type="text" class="form-control" placeholder="Middle Initial" onkeyup="javascript:this.value=this.value.toUpperCase();" autocomplete="off">
          </div>
        </div>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
              <button ng-disabled="frm.$invalid" type="submit" id="save" class="btn btn-info">&nbsp; Save &nbsp;</button>`

如果将jquery和angular代码混合在一起,这将是一个问题——在许多情况下可能会出错

在这种特殊情况下,您只需更新输入字段的css类。表单在angular中的内部表示仍然认为它是无效的-即使您从字段中删除了所有ng invalid

您应该尝试更新应用程序以使用角度方式设置值

$scope.change = function () {
    var id = $scope.selectedId;

    $http({
      url : "php/autofill.php",
      data : {
        "id" : id
      },
      method : "POST"
    }).then(function(response) {
        var data = response.data;
        console.log(data.fname);
        $scope.first = data.fname;
        $scope.frm.first.$setValidity(true);
        $scope.frm.first.$setPristine(false);
        ...
    });
  };

以上代码仅用于说明,未经测试

嗨,问题是如何启用按钮?submit btn.quick_fill在angular范围之外,或者可以使用angular?写入。表单中没有分开的quick_fill下拉列表。这意味着在角度范围内同时有两种形式。我的转换函数选择器是什么?我将如何选择快速填充下拉列表选择。TNX您可以参考或其他指南了解如何构建选择。您可以在此选择中添加ng更改以触发更改功能。