ng-required不适用于最小条件下的数字输入

时间:2017-05-02 19:01:16

标签: javascript html angularjs ng-required

我有一个复选框,根据其ng-model的值,我使用ng-show切换div的可见性。

此div包含<input> type="number"。我对min="10000"进行了验证。

如果输入的数字小于10000,我不希望表单被提交。 但是,我希望只有在选中复选框时才会发生这种情况。 所以,我使用ng-required来检查复选框的值。

<input type="checkbox" ng-model="isOn"/>

<div ng-show="isOn">
    <input type="number" min="10000" ng-model="counter" ng-required="isOn"/>
</div>

如果某人继续而未触及复选框和输入字段,则表单将被提交。 但是,如果我单击该复选框,请输入一个数字<10000,并再次取消选中该表单,表单不会被提交。

在控制台上我收到错误,它无法关注输入控件。 ng-required无法在min条件下工作。无论ng-required如何,都会进行检查。

有什么方法可以让它发挥作用吗?

PS:我不想在按键时使用带有文本输入+长度限制+限制字符代码的解决方案,这样只能键入数字。

3 个答案:

答案 0 :(得分:0)

当用户取消选中该复选框时,您还需要将数字输入字段的模型重置为其初始状态。

答案 1 :(得分:0)

我使用了ng-if而不是ng-show,而且效果很好。

我在发布问题之前尝试过,但它没有用。后来我意识到我已经对另一个html文件进行了更改。

答案 2 :(得分:0)

我希望这应该有用

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class MainTradingPlatform(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupFrame(self)

    def setupFrame(self, frame2):
        frame2.setWindowTitle('2frame')
        frame2.resize(1200, 1000)

    def closeEvent(self, e):
        sys.exit(0)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    ex = MainTradingPlatform()
    ex.show()
    sys.exit(app.exec_())