通过 NG 单击选择文件或文本区域数据
select either file or textarea data with ng-click
我想选择文件或输入的数据。 我需要验证这一点,但我失败了。 它必须是文件或文本数据,只需单击按钮即可。 请帮助我解决这个问题,提前谢谢。JSFiddle
我需要如果用户同时输入文件和文本区域文本,它会显示错误。 用户必须仅选择"文件"或"文本区域"。 这是我的要求
.HTML:
<form name="form" ng-app="app" ng-controller="Ctrl" >
Upload file: <input type="file" id="file" /><br/><br/>
Enter text: <textarea id="textarea" required></textarea>
<br/><br/>
<button type="submit" class="btn btn-primary btn-large" ng-click="submitForm()">Submit</button>
</form>
.JS:
var app = angular.module('app', []);
app.controller('Ctrl', function ($scope) {
$scope.submitForm = function(){
alert("hi");
var string1 = document.getElementById('file').value;
var string2 =document.getElementById('textarea').value;
if (string1 == string2) {
return true;
}
else {
return false;
}
}
});
没有办法获取带有ng-model
的文件名,因为它不适用于type=file
。
要实现您想要的,您必须创建一个指令,如下面的链接所示:https://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs
之后,您必须将 file-model
指令分配给输入,告诉$scope
的哪个变量将与该值双向绑定。
文本区域数据可以用ng模型实现。
JSFiddle
单击文件输入后,请禁用文本区域字段,如果您没有任何要上传的文件,则可以单击文本区域字段并单击文本区域禁用文件输入
如果它是
非此即彼的条件,则不能在两个输入上使用 required。
我在这里创建了一个应该适合您的代码笔:
http://codepen.io/anon/pen/XdYBWp
代码如下:
.HTML
<form name="form" ng-app="app" ng-controller="Ctrl as ctrl">
Upload file:
<input type="file" id="file" ng-model="ctrl.file" />
<br/>
<br/> Enter text:
<textarea id="textarea" ng-model="ctrl.text"></textarea>
<br/>
<br/>
<button class="btn btn-primary btn-large" ng-click="ctrl.submitForm()">Submit</button>
</form>
JavaScript angular.module('app', []).controller('Ctrl', function() {
var vm = this;
vm.file = ""
vm.text = ""
vm.submitForm = function() {
// angular doesn't update the model for input type="file"
vm.file = document.getElementById('file').value;
var retVal = false ;
if (vm.file && ! vm.text)
{retVal = true}
else if (vm.text && ! vm.file)
{retVal = true}
else if (!vm.text && !vm.file)
{retVal = false}
else if (vm.text && vm.file)
{retVal = false}
if (!retVal) {
alert("Please specify either a file or text, not both!")
} else
alert("ok")
}
});
您可能可以将所有 ifs 和else ifs 组合成一个表达式,但它的可读性不是很强 IMO。
相关文章:
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域