angularjs复选框onchange不能在窗体中工作。$ pristine

时间:2017-08-09 08:59:24

标签: javascript angularjs forms checkbox

我有一个角度的表单,有一些输入框,复选框和提交按钮。最初提交按钮是禁用。 如果我从该表单更改任何元素,则提交按钮将变为启用状态。 我正在使用angularjs功能.$pristine and $invalid。它适用于输入框但不适用于复选框更改。 我做错了吗?请指导我。 请参阅小提琴:FIDDLE

2 个答案:

答案 0 :(得分:2)

您需要为复选框添加ng-model

<input type="checkbox" ng-model="val" required />

工作演示http://jsfiddle.net/7qAqe/12/

  

“具有ngModel指令的输入控件包含NgModelController的实例。这样的控件实例可以使用输入控件上的name属性作为表单实例的属性发布.name属性指定属性的名称在表单实例上。“
  - Forms Documentation

答案 1 :(得分:0)

您没有将复选框输入绑定到任何模型。 请参阅this demo

    private static Object sDeletingThreadsLock = new Object();
private static boolean sDeletingThreads;

public static class ConversationQueryHandler extends AsyncQueryHandler {
    private int mDeleteToken;
    private Context mContext;

    public ConversationQueryHandler(ContentResolver cr, Context context) {
        super(cr);
        mContext = context;
    }

    public void setDeleteToken(int token) {
        mDeleteToken = token;
    }

    /**
     * Always call this super method from your overridden onDeleteComplete function.
     */
    @Override
    protected void onDeleteComplete(int token, Object cookie, int result) {
    Log.v(TAG, "Conversation onDeleteComplete token: " + token + " cookie- " + cookie + " result- " + result);
        if (token == mDeleteToken) {
            // release lock
            synchronized (sDeletingThreadsLock) {
                sDeletingThreads = false;

                sDeletingThreadsLock.notifyAll();
            }
        }
    }
}