如果focusout,我必须调用一个api,用于保存输入文本区域的多个动态字段集

vwkv1x7d  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(210)

我将有一个加号按钮,点击按钮后,将创建带有两个输入文本区域的字段集。我的任务是调用api,如果当前字段的焦点丢失,这里的问题是由于创建了多个动态字段集,无法获取id,因为字段集将具有相同的id(不会是唯一的)。不仅是字段集,还有输入字段id,我试图通过向其添加索引来赋予id唯一性,但我无法在jquery中使用该id。

<fieldset class="mb-10 col-md-8" style="padding:10px 0;" id="dbcrFieldsMultiple{{$index}}"
ng-repeat="entries in vm.dbcr.dbcrMultipleEntriesDetails">
<div class="col-md-1" ng-hide="true">
<span class="serial-number">{{ $index + 1 }}.</span>
</div>
<div class="col-md-5">
<label>Input Stream Name
<span class="requiredField">*</span>
</label>
<md-dialog-content>
<div class="md-dialog-content;padding: 10px;">
<textarea ng-model="entries.dbcrInputStream" id="InputStream" press-enter- 
key="vm.initiateIndex($event,$index,entries.dbcrInputStream,'INPUT_STREAM')" value= 
{{entries.dbcrInputStream}} class="form-control" placeholder="Please Enter Input Stream Here"> 
</textarea>
</div>
</md-dialog-content>
</div>
<div class="col-md-5">
<label>Fallback Stream Name<span class="requiredField">*</span></label>
<md-dialog-content>
<div class="md-dialog-content;padding: 10px;">
<textarea ng-model="entries.dbcrFallbackStream" id="InputStream_fallback_{{$index}}" press- 
enter-key="vm.initiateIndex($event,$index,entries.dbcrFallbackStream,'FALLBACK_STREAM')"
class="form-control" placeholder="Please Enter Fallback Stream name Here"></textarea>
</div>
</md-dialog-content>
</div>
<div class="fContent col-md-1" ng-if="vm.dbcr.dbcrMultipleEntriesDetails.length > 1">
<br>
<button plan-action-control action="delete" ng-click="vm.removeEntries(entries)" 
style="background: #F44336 !important;color: #eee !important;" class="btn btn-xs">
<md-tooltip md-direction='top' class="actionButtonTooltip">Delete</md-tooltip><span 
style="font-size: 12px;"><em class="fa fa-trash"></em></span></button>
</div>
</fieldset>

如果焦点超出字段集的文本区域,我尝试了jquery

setTimeout(function(){
$('#dbcrFieldsMultiple').focusout(function(){
alert("yes")
})
$('#InputStream').focusout(function(){
alert("yes")
})
})
xdnvmnnf

xdnvmnnf1#

为什么要使用jquery?angular做事情的方式完全不同。它不需要元素id(但您确实不应该复制元素id)。打电话给本地人就行了 ng-blur 事件

<fieldset class="mb-10 col-md-8" style="padding:10px 0;" id="dbcrFieldsMultiple{{$index}}" ng-blur="onInputBlur($event)" >

https://docs.angularjs.org/guide/expression#-事件-
在控制器中

$scope.onInputBlur = function (e) {
   // element: console.log(e.target);
}

相关问题