相关疑难解决方法(0)

如何防止按钮提交表单

在下一页中,使用Firefox,删除按钮提交表单,但添加按钮不提交.如何阻止删除按钮提交表单?

<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function addItem() {
  var v = $('form :hidden:last').attr('name');
  var n = /(.*)input/.exec(v);
  var newPrefix;
  if ( n[1].length == 0 ) {
    newPrefix = '1';
  } else {
    newPrefix = parseInt(n[1])+1;
  }
  var oldElem = $('form tr:last');
  var newElem = oldElem.clone(true);
  var lastHidden = $('form :hidden:last');
  lastHidden.val(newPrefix);
  var pat = '=\"'+n[1]+'input';
  newElem.html(newElem.html().replace(new RegExp(pat, 'g'), '=\"'+newPrefix+'input'));
  newElem.appendTo('table');
  $('form :hidden:last').val('');
}
function removeItem() {
  var rows = $('form tr');
  if ( rows.length > 2 ) …
Run Code Online (Sandbox Code Playgroud)

html javascript forms submit button

858
推荐指数
14
解决办法
63万
查看次数

AngularJS:禁用提交和服务器响应之间的所有表单控件

如果我想在用户点击"保存"或"提交"按钮排序的一段时间内禁用表单控件(或者至少使它们不可用于用户交互),那么我遇到了什么是最好(和正确)方法的困境和通过电线传输的数据.我不想使用JQuery(这是邪恶的!!!)并查询所有元素作为数组(通过类或属性标记)我到目前为止的想法是:

  • 使用cm-form-control自定义指令标记所有元素,该指令将订阅2个通知:"数据发送"和"数据处理".然后自定义代码负责推送第二个通知或解决承诺.
  • 使用promiseTracker它(不幸!)强制生成非常愚蠢的代码,如ng-show="loadingTracker.active()".显然并非所有元素都有ng-disabled,我不想让用户ng-hide/show避免"跳舞"按钮.
  • 咬一口子弹仍然使用JQuery

有没有人有更好的主意?提前致谢!

更新:领域集 的想法是有效的.对于那些仍然想要做同样事情的人来说,这是一个简单的小提琴http://jsfiddle.net/YoMan78/pnQFQ/13/

HTML:

<div ng-app="myApp">
    <ng-form ng-controller="myCtrl">
        Saving: {{isSaving}}
        <fieldset ng-disabled="isSaving">
            <input type="text" ng-model="btnVal"/>
            <input type="button" ng-model="btnVal" value="{{btnVal}}"/>
            <button ng-click="save()">Save Me Maybe</button>
        </fieldset>
    </ng-form>
</div>
Run Code Online (Sandbox Code Playgroud)

和JS:

var angModule = angular.module("myApp", []);

angModule.controller("myCtrl", function ($scope, $filter, $window, $timeout) {
    $scope.isSaving = undefined;
    $scope.btnVal = 'Yes';
    $scope.save = function()
    {
        $scope.isSaving = true;
        $timeout( function()
             {
                 $scope.isSaving = false;
                 alert( 'done');
             }, 10000);
    };
});
Run Code Online (Sandbox Code Playgroud)

javascript forms submit angularjs

121
推荐指数
1
解决办法
9万
查看次数

$ jj/$ q调用上的angularjs禁用按钮

在DRY主体之后,我想写一个按钮指令,它在$ http类的持续时间内保持按钮被禁用.

我想这样做是为了禁止用户多次单击按钮,但我无法考虑如何在指令中获取函数承诺状态,因为函数驻留在$ scope

该场景非常通用,按钮ng-click确实调用了一个函数,该函数又进行$ http调用.用户点击:按钮应该被禁用,只有在$ http调用解决后才能启用,无论是成功还是失败.

angularjs angularjs-directive

12
推荐指数
4
解决办法
2万
查看次数

如何检查angularjs中的ng-disabled?

我正在使用fuelUX向导和Angularjs.我希望根据此控制器方法启用或禁用下一个按钮:

$scope.canMoveForward = function(){
        switch($("#moduleWizard").wizard("selectedItem").step){
            case 1:
            //check if the module on the first step is valid*/  
                return $scope.validSelection && $scope.linkedPredicateForm.$valid;

            case 2:
            //check if the table is empty
                return !linkingDataSource.isEmpty();

            case 3:
                var enab= ($scope.saveModeForm.$valid && $scope.newSourceForm.$valid) || 
                ($scope.saveModeForm.$valid && $scope.appendSourceForm.$valid)
        }
    };
Run Code Online (Sandbox Code Playgroud)

确实这就是我如何删除按钮:

<div class="actions">
                <button class="btn btn-mini btn-prev" ng-click="refresh()"> <i class="icon-arrow-left"></i>Prev</button>
                <button class="btn btn-mini btn-next" data-last="Finish"  id="wizard-next" ng-disabled="!canMoveForward()"
                        ng-click="handleStepResult()">
                    Next<i class="icon-arrow-right"></i></button>
            </div>
Run Code Online (Sandbox Code Playgroud)

它工作正常,除非我从第二页返回到第一页:如果第二页中的下一个按钮被禁用,即使在第一页也是如此,除非我不在那里编辑表单.无论如何刷新ng-disabled绑定?

javascript wizard angularjs fuelux

7
推荐指数
1
解决办法
3万
查看次数