| Index: chrome/browser/resources/options/autofill_edit_creditcard_overlay.js
|
| diff --git a/chrome/browser/resources/options/autofill_edit_creditcard_overlay.js b/chrome/browser/resources/options/autofill_edit_creditcard_overlay.js
|
| index 100f9316682959ef080daa23369a836c367aea7d..c5c4a5de6215c8505e03a60a4cc16c649fdee559 100644
|
| --- a/chrome/browser/resources/options/autofill_edit_creditcard_overlay.js
|
| +++ b/chrome/browser/resources/options/autofill_edit_creditcard_overlay.js
|
| @@ -46,9 +46,6 @@ cr.define('options', function() {
|
| self.saveCreditCard_();
|
| self.dismissOverlay_();
|
| }
|
| - $('creditCardNumber').onkeydown = this.onTextInput_.bind(this);
|
| - $('creditCardNumber').addEventListener('textInput',
|
| - this.onTextInput_.bind(this));
|
|
|
| self.guid_ = '';
|
| self.storedCCNumber_ = '';
|
| @@ -59,27 +56,6 @@ cr.define('options', function() {
|
| },
|
|
|
| /**
|
| - * Handles the textInput and keydown events.
|
| - * @private
|
| - */
|
| - onTextInput_: function(event) {
|
| - // For some reason, the textInput event doesn't consider
|
| - // backspace/deletion an input event, so we have to handle those here.
|
| - // 8 - backspace
|
| - // 46 - delete
|
| - if (event.type == 'keydown' && event.keyCode != '8' &&
|
| - event.keyCode != '46')
|
| - return;
|
| -
|
| - // If the user hasn't edited the text yet, delete it all on edit.
|
| - if (!this.hasEditedNumber_ &&
|
| - $('creditCardNumber').value != this.storedCCNumber_) {
|
| - this.hasEditedNumber_ = true;
|
| - $('creditCardNumber').value = '';
|
| - }
|
| - },
|
| -
|
| - /**
|
| * Clears any uncommitted input, and dismisses the overlay.
|
| * @private
|
| */
|
| @@ -118,22 +94,31 @@ cr.define('options', function() {
|
| * @private
|
| */
|
| connectInputEvents_: function() {
|
| - var self = this;
|
| $('nameOnCard').oninput = $('creditCardNumber').oninput =
|
| $('expirationMonth').onchange = $('expirationYear').onchange =
|
| - function(event) {
|
| - self.inputFieldChanged_();
|
| - }
|
| + this.inputFieldChanged_.bind(this);
|
| },
|
|
|
| /**
|
| * Checks the values of each of the input fields and disables the 'Ok'
|
| * button if all of the fields are empty.
|
| + * @param {Event} opt_event Optional data for the 'input' event.
|
| * @private
|
| */
|
| - inputFieldChanged_: function() {
|
| - var disabled = !$('nameOnCard').value && !$('creditCardNumber').value;
|
| + inputFieldChanged_: function(opt_event) {
|
| + var ccNumber = $('creditCardNumber');
|
| + var disabled = !$('nameOnCard').value && !ccNumber.value;
|
| $('autoFillEditCreditCardApplyButton').disabled = disabled;
|
| +
|
| + if (opt_event && opt_event.target == ccNumber) {
|
| + // If the user hasn't edited the text yet, delete it all on edit.
|
| + if (!this.hasEditedNumber_ && this.storedCCNumber_.length &&
|
| + ccNumber.value != this.storedCCNumber_) {
|
| + ccNumber.value = '';
|
| + }
|
| +
|
| + this.hasEditedNumber_ = true;
|
| + }
|
| },
|
|
|
| /**
|
|
|