summaryrefslogtreecommitdiff
path: root/httemplate/view
diff options
context:
space:
mode:
authorivan <ivan>2006-12-08 13:36:07 +0000
committerivan <ivan>2006-12-08 13:36:07 +0000
commitd8c39492e9192d9c66858d21c6c69b069968eec7 (patch)
tree0e4da92ba06abab434869ea7be8d4f3784d57e51 /httemplate/view
parent821383d1b4dc45fa37c8ff651329b4855972ff29 (diff)
some javascript validation magic to give one-time charges better UI
Diffstat (limited to 'httemplate/view')
-rw-r--r--httemplate/view/cust_main/quick-charge.html68
1 files changed, 61 insertions, 7 deletions
diff --git a/httemplate/view/cust_main/quick-charge.html b/httemplate/view/cust_main/quick-charge.html
index be8b9d838..06ffd75e6 100644
--- a/httemplate/view/cust_main/quick-charge.html
+++ b/httemplate/view/cust_main/quick-charge.html
@@ -1,19 +1,73 @@
-%
-% my( $cust_main ) = @_;
-%
+<SCRIPT TYPE="text/javascript">
+function enable_quick_charge () {
+ //alert('enable_quick_charge ' + document.QuickChargeForm.amount.value + ' - ' + document.QuickChargeForm.pkg.value );
+ if ( document.QuickChargeForm.amount.value
+ && document.QuickChargeForm.pkg.value ) {
+ document.QuickChargeForm.submit.disabled = false;
+ } else {
+ document.QuickChargeForm.submit.disabled = true;
+ }
+}
-<FORM ACTION="<%$p%>edit/process/quick-charge.cgi" METHOD="POST">
+function enable_quick_charge_desc () {
+ //alert('enable_quick_charge ' + document.QuickChargeForm.amount.value + ' - ' + document.QuickChargeForm.pkg.value );
+ if ( document.QuickChargeForm.amount.value ) {
+ document.QuickChargeForm.submit.disabled = false;
+ } else {
+ document.QuickChargeForm.submit.disabled = true;
+ }
+}
+
+function enable_quick_charge_amount () {
+ //alert('enable_quick_charge ' + document.QuickChargeForm.amount.value + ' - ' + document.QuickChargeForm.pkg.value );
+ if ( document.QuickChargeForm.pkg.value ) {
+ document.QuickChargeForm.submit.disabled = false;
+ } else {
+ document.QuickChargeForm.submit.disabled = true;
+ }
+}
+
+function validate_quick_charge () {
+ //alert('validate_quick_charge');
+ var pkg = document.QuickChargeForm.pkg.value;
+ var pkg_regex = /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=\[\]]+)$/ ;
+ var amount = document.QuickChargeForm.amount.value;
+ var amount_regex = /^\s*\$?\s*(\d+(\.\d{1,2})?)\s*$/ ;
+
+ if ( amount_regex.test(amount) && pkg_regex.test(pkg) ) {
+ return true;
+ } else if ( amount_regex.test(amount) ) {
+ if ( pkg ) {
+ alert('Illegal description - spaces, letters, numbers, and the following punctuation characters are allowed: . , ! ? @ # $ % & ( ) - + ; : ' + "'" + ' " = [ ]' );
+ } else {
+ alert('Enter a description for the one-time charge');
+ }
+ return false;
+ } else {
+ alert('Illegal amount - enter an amount to charge, for example, "5" or "43" or "21.46".');
+ return false;
+ }
+}
+
+</SCRIPT>
+
+<FORM NAME="QuickChargeForm" ACTION="<%$p%>edit/process/quick-charge.cgi" METHOD="POST" onSubmit="return validate_quick_charge()">
<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $cust_main->custnum %>">
-Description:<INPUT TYPE="text" NAME="pkg">
+Description:<INPUT TYPE="text" NAME="pkg" onChange="enable_quick_charge()" onKeyPress="enable_quick_charge_desc()">
-Amount:<INPUT TYPE="text" NAME="amount" SIZE=6>
+Amount:<INPUT TYPE="text" NAME="amount" SIZE=6 onChange="enable_quick_charge()" onKeyPress="enable_quick_charge_amount()">
<% include('/elements/select-taxclass.html') %>
-<INPUT TYPE="submit" VALUE="One-time charge">
+<INPUT NAME="submit" TYPE="submit" VALUE="One-time charge" DISABLED>
</FORM>
+<%init>
+
+my( $cust_main ) = @_;
+
+</%init>