当前位置: 首页 > 面试题库 >

必需属性不适用于Angular Js中的文件输入

许博
2023-03-14
问题内容

我的表单中有一个文件上传控件。我正在使用Angular JS。当我放置必填属性以验证是否已选择文件时,它不起作用。

<input id="userUpload" name="userUpload" required type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />

<button type="submit" class="btn btn-primary"><i class="icon-white icon-ok"></i>&nbsp;Ok</button>

您能否提出建议,为什么不起作用?


问题答案:

正是ngModelController根据像这样的属性在Angular中进行验证require。但是,当前不支持input type="file"ng-model服务。要使其正常工作,您可以创建如下指令:

app.directive('validFile',function(){
  return {
    require:'ngModel',
    link:function(scope,el,attrs,ngModel){
      //change event is fired when file is selected
      el.bind('change',function(){
        scope.$apply(function(){
          ngModel.$setViewValue(el.val());
          ngModel.$render();
        });
      });
    }
  }
});

标记示例:

  <div ng-form="myForm">
    <input id="userUpload" ng-model="filename" valid-file name="userUpload" required type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
    <button ng-disabled="myForm.$invalid" type="submit" class="btn btn-primary"><i class="icon-white icon-ok"></i>&nbsp;Ok</button>
    <p>
      Input is valid: {{myForm.userUpload.$valid}}
      <br>Selected file: {{filename}}
    </p>
  </div>

看看我的工作plnkr示例。



 类似资料:
  • 问题内容: 我正在做.. 现在在我的@Configuration文件中,如果执行此操作,则不会获取SpringConfig.properties中存在的属性… 但是如果我使用该财产 我什至尝试添加更多这样的行,但是没有用。 有人知道为什么我的属性未加载到环境中吗?谢谢。 问题答案: PropertySourcesPlaceholderConfigurer直接读取属性文件(就像在Spring 3.0

  • 问题内容: 在我的Web应用程序中,我对表单字段使用了一些自定义验证。在同一个表单中,我有两个按钮:一个用于实际提交表单,另一个用于取消/重置表单。 通常,我使用Safari作为默认浏览器。现在Safari5退出了,突然我的“取消/重置”按钮不再起作用了。每次按下重置按钮时,表单中的第一个字段都会获得焦点。但是,这与我的自定义表单验证相同。在其他浏览器上尝试时,一切都很好。我必须是Safari 5

  • 问题内容: 我有一个要在用户点击时显示/隐藏的组件。 就像这样: 和 在简单地设置属性为true或false适当。我正在使用。 问题是我的按钮的属性值。它明确列出了和。 只要始终存在(仅更改其标签),则仅在属性为true 时才存在。否则它说: malformedXML:更新期间:找不到说明 我怎么解决这个问题? 我不想回到隐藏源代码中的元素的位置,所以我不想使用任何jQuery toggle(-)

  • 问题内容: 我正在将多页php + jquery网站转换为单页角度应用程序。但是我已经用jquery编写了很多代码,因此只打算将php换成与路由等有关的角度。 我遇到的一个我无法弄清楚的问题是,在转换停止工作之前,我一直用尽的jquery click事件。如果更改代码以使其通过ng- click触发,则它将起作用,即使我从控制台调用该函数也是如此。jQuery正常工作,我在提到的函数中放了一些jQ

  • 问题内容: 我只是想知道如何以正确的方式在单选按钮上使用新的HTML5输入属性“ required”。是否每个单选按钮字段都需要下面的属性,或者只有一个字段就足够了吗? 问题答案: 为无线电组的至少一个输入设置属性。 所有输入的设置更加清晰,但不是必需的(除非动态生成单选按钮)。 要对单选按钮进行分组,它们必须全部具有相同的值。这样一次只能选择一个,并应用于整个组。 另请注意: 为了避免对是否需要

  • 问题内容: 我尝试使用以下代码将必填字段告知必填字段,但在Safari浏览器中不起作用。码: 上面的代码在firefox中工作。 您可以让我知道JavaScript代码或任何workarround吗? 是javascript新功能 谢谢 问题答案: Safari(自2017年3月26日起最新版本10.1)不支持此属性,您需要使用JavaScript。 该页面包含一个hacky解决方案,该解决方案应