snbutton.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Version 0.2.0
  3. * A tiny jQuery plugin that could control button's state
  4. */
  5. var SNButton = {
  6. init: function(e, params) {
  7. var button = "#"+e;
  8. var input = "#"+jQuery(button).data("snnode");
  9. if(params)
  10. {
  11. var enabletext = params.enabletext ? params.enabletext : $(button).text();
  12. var disabletext = params.disabletext ? params.disabletext : $(button).text();
  13. var fields = params.fields ? params.fields : null;
  14. }
  15. if(fields)
  16. {
  17. input = Array();
  18. $.each(fields, function(index, value, array) {
  19. input.push("#"+value);
  20. });
  21. }
  22. jQuery(button).attr("disabled", SNButton.allhastext(input));
  23. jQuery(button).text(disabletext);
  24. if(Array.isArray(input))
  25. {
  26. $.each(input, function(index, value, array) {
  27. jQuery(value).on('input propertychange', function() {
  28. if(SNButton.allhastext(input))
  29. {
  30. jQuery(button).attr("disabled", true);
  31. jQuery(button).text(disabletext);
  32. }
  33. else
  34. {
  35. jQuery(button).attr("disabled", false);
  36. jQuery(button).text(enabletext);
  37. }
  38. });
  39. });
  40. }
  41. else
  42. {
  43. jQuery(input).on('input propertychange', function() {
  44. if(SNButton.allhastext(input))
  45. {
  46. jQuery(button).attr("disabled", true);
  47. jQuery(button).text(disabletext);
  48. }
  49. else
  50. {
  51. jQuery(button).attr("disabled", false);
  52. jQuery(button).text(enabletext);
  53. }
  54. });
  55. }
  56. },
  57. allhastext: function(sdf) {
  58. //console.log(sdf);
  59. if(Array.isArray(sdf))
  60. {
  61. var ret = false;
  62. $.each(sdf, function(index, value, array) {
  63. if(jQuery(value).val()=="")
  64. {
  65. ret = true;
  66. }
  67. });
  68. return ret;
  69. }
  70. else
  71. {
  72. if(jQuery(sdf).val()=="")
  73. {
  74. return true;
  75. }
  76. else
  77. {
  78. return false;
  79. }
  80. }
  81. }
  82. }