Javascript AngularJS通过单击按钮检测下拉列表是否已更改

Javascript AngularJS通过单击按钮检测下拉列表是否已更改,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我对AngularJS很陌生,所以我需要你的帮助。 如果用户已从下拉列表中选择,如何通过单击按钮进行检查?我有两个下拉列表,我需要检查用户是否从这两个下拉列表中进行了选择。如果他没有选择并单击Submit按钮,将出现一个模式提示 这就是我迄今为止所尝试的: HTML: <select id="supplier" name="supplier" class="form-control" ng-model="searchFormData.supplier" ng-change="chang

我对AngularJS很陌生,所以我需要你的帮助。 如果用户已从下拉列表中选择,如何通过单击按钮进行检查?我有两个下拉列表,我需要检查用户是否从这两个下拉列表中进行了选择。如果他没有选择并单击Submit按钮,将出现一个模式提示

这就是我迄今为止所尝试的:

HTML:

<select id="supplier" name="supplier" class="form-control"
  ng-model="searchFormData.supplier" ng-change="changeMeChange()"
  ng-options="supplier.company as supplier.company for supplier in suppliersObj">
</select>
$scope.changeMeChange = function() {
    alert('You changed me!');
};
但这只会通知下拉列表是否已更改,而不会通知单击按钮


你知道怎么做吗?

我会使用ng模型为两个下拉列表设置两个范围变量来存储所选值,然后在ng函数中单击按钮,你可以检查这两个变量,看看它们有什么值。

因为你的
ng模型
指向
searchFormData.supplier
,如果用户选择一个选项,它将具有选定的值。因此,您可以在单击按钮时执行以下操作:

$scope.submitClick=function(){
if(!$scope.searchFormData.supplier){
警报('您没有选择供应商!');
返回错误
}
};
使用
ng click=“myMethod()”
按钮您将进入单击时调用的方法,要查看它是否正常工作,请使用
console.log(“hello world”)
并查看web浏览器的控制台,查看它是否打印消息;P

示例代码:

好的,我制作了这个示例代码,看看它是如何工作的(datos是我的控制器)

-HTML

我们从select的ng模型中获取数据,并将其作为参数放在buton方法中


对于数据,您将拥有select choose的值,如果为null是因为用户没有选择任何内容,我希望我能帮助您;P

尝试此操作以触发按钮单击选择框

$scope.changeMeChange = function() {
        alert('You changed me!');
    };

     <select ng-click='changeMeChange()'></select>
$scope.changeMachage=function(){
警惕(“你改变了我!”);
};

据我所知,您需要检测用户是否更改了字段的下拉值。因此,您可以使用angular
表单
验证,在这里您可以检查字段是否为
$dirty
/
$pristine
。基于此,您可以显示
模态
,或者可以调用特定函数

标记

<form name="myForm" ng-submit="mySubmit()">
  <select id="supplier" name="supplier" class="form-control"
     ng-model="searchFormData.supplier" ng-change="changeMeChange(searchFormData.supplier, supplier)"
     ng-options="supplier.company as supplier.company for supplier in suppliersObj">
  </select>
  ...other fields...
  <button type="button">Submit</button>
</form>

$scope.changeMachage=函数(){
警惕(“你改变了我!”);
};

您可以尝试这种方法,一旦模型更改,将调用警报

您需要将单击事件绑定到按钮以检查下拉模型值

下面是示例代码:

按钮的HTML代码:

<button data-ng-click="myFunction()">Click</button>

希望以上示例代码能帮助您解决问题。

使用
ng单击
按钮
元素,检查
模型的值
@RayonDabre您好,谢谢您能提供示例代码或教程吗?我觉得您的问题不完整。。提供一个
小提琴
或演示来使用。。哪里是
选择
输入和按钮?想知道任何有帮助的答案。。!你能分享一些示例片段吗?嗨,如果我理解正确,我将为我的按钮创建一个方法,然后如何检查下拉列表是否已更改?你将返回值保存在ng模型中,因此你只需要查看你放入的$scope.ngModel,并比较值或查看它是否为null,我不知道你们是否理解我,这和问题有什么关系?@PankajParkar-他需要使用angular JS检查submit按钮上的下拉值,这样他就可以将click事件添加到按钮上,并检查下拉值,如果它没有填充,则按此显示提示。我没有添加完整的代码,我只是添加了示例代码。@PankajParkar,他在下面一行提到。“如果用户从下拉列表中选择了,我如何通过按钮单击来检查?”所以我猜他需要检查用户是否更改了下拉列表中的按钮单击!老实说,这个问题很不清楚。。让我们看看OP的下一次编辑:pYeah@PankajParkar,首先他要求我在评论中提到的上述事情。这就是我只给出示例代码而不是完整代码的原因。
<form name="myForm" ng-submit="mySubmit()">
  <select id="supplier" name="supplier" class="form-control"
     ng-model="searchFormData.supplier" ng-change="changeMeChange(searchFormData.supplier, supplier)"
     ng-options="supplier.company as supplier.company for supplier in suppliersObj">
  </select>
  ...other fields...
  <button type="button">Submit</button>
</form>
$scope.changeMeChange = function(field, supplier) {
    //field.$pristine OR !field.$dirty will tell you does field has changed or not
    if(!supplier && field.$pristine){
       //open modal from here.
    }
    else{
        alert('You changed me!');
    }
};
<select ng-options="size as size.name for size in sizes" 
   ng-model="item" ng-change="update()"></select>


$scope.changeMeChange = function() {
  alert('You changed me!');
};
<button data-ng-click="myFunction()">Click</button>
$scope.myFunction = function() {
    //Check model values of dropdown over here, based upon the result you can show prompt. 
    // You can access model value by scope variables.
};