Saya memiliki dua nilai bidang input dan saya bertanya-tanya bagaimana saya bisa menonaktifkan tombol jika nilai input pertama lebih besar dari nilai input kedua. Ini berfungsi hanya dengan huruf pertama tetapi lebih dari 2 angka tidak berfungsi.

<button type="submit" data-bind="click: addition, enable:temp1() > temp2()" >Click here for addition</button>
 function ViewModel () {
            var self = this;
            self.var1 = ko.observable(0);
            self.var2 = ko.observable(0);
            self.temp1 = ko.observable(self.var1())
            self.temp2 = ko.observable(self.var2())

            this.addition = function() {
               self.var1(Number(self.temp1()));
               self.var2(Number(self.temp2()));

               this.var3 = self.var1() + self.var2();
               alert("Addition is = "+ this.var3 );
            };
         };

         var vm = new ViewModel();
         ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<p>First #: <span data-bind = "text: var1" > </span></p>
<p>Sectond #: <span data-bind = "text: var2" > </span></p>

         <p>Enter first #: <input data-bind = "value: temp1" /></p>
         <p>Enter second #: <input data-bind = "value: temp2" /></p>
         
         
         <p><button type = "submit" data-bind = "click: addition" enable="temp1() < temp2()" >Click here for addition</button></p>
1
siuri 22 Desember 2017, 23:52

1 menjawab

Jawaban Terbaik

Ada kesalahan pada atribut data-bind Anda pada tombol kirim. Ubah ini:

data-bind = "click: addition" enable="temp1() < temp2()"

Untuk ini:

data-bind = "click: addition, enable:Number(temp1()) < Number(temp2())"

Selain itu, membungkus yang dapat diamati dalam konstruktor Number memaksa nilai menjadi angka. Berikut adalah dokumentasi untuk pengaktifan binding

1
Jonathan Chaplin 22 Desember 2017, 22:16