Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Brak jedej funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki
miska
Mam skrypt który mi podmienia na stronie elementy formularza ale ... brakuje mi w nim jednej rzeczy. Muszę po wybraniu select przeładować formularz jest ktoś w stanie przerobić mi to ?
  1. var niceforms = document.getElementsByTagName('form');
  2. var inputs = new Array();
  3. var labels = new Array();
  4. var radios = new Array();
  5. var radioLabels = new Array();
  6. var checkboxes = new Array();
  7. var checkboxLabels = new Array();
  8. var texts = new Array();
  9. var textareas = new Array();
  10. var selects = new Array();
  11. var selectText = "wybierz";
  12. var agt = navigator.userAgent.toLowerCase();
  13. this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  14. var hovers = new Array();
  15. var buttons = new Array();
  16. var isMac = new RegExp('(^|)'+'Apple'+'(|$)');
  17.  
  18. //Theme Variables - edit these to match your theme
  19. var selectRightSideWidth = 21;
  20. var selectLeftSideWidth = 8;
  21. var selectAreaHeight = 21;
  22. var selectAreaOptionsOverlap = 2;
  23. var imagesPath = "../../css/images/";
  24.  
  25. //Initialization function - if you have any other 'onload' functions, add them here
  26. function init() {
  27. if(!document.getElementById) {return false;}
  28. preloadImages();
  29. getElements();
  30. separateElements();
  31. replaceRadios();
  32. replaceCheckboxes();
  33. replaceSelects();
  34. if(!isMac.test(navigator.vendor)) {
  35. replaceTexts();
  36. replaceTextareas();
  37. buttonHovers();
  38. }
  39. }
  40.  
  41.  
  42. //preloading required images
  43. function preloadImages() {
  44. preloads = new Object();
  45. preloads[0] = new Image(); preloads[0].src = imagesPath + "button_left_xon.gif";
  46. preloads[1] = new Image(); preloads[1].src = imagesPath + "button_right_xon.gif";
  47. preloads[2] = new Image(); preloads[2].src = imagesPath + "input_left_xon.gif";
  48. preloads[3] = new Image(); preloads[3].src = imagesPath + "input_right_xon.gif";
  49. preloads[4] = new Image(); preloads[4].src = imagesPath + "txtarea_bl_xon.gif";
  50. preloads[5] = new Image(); preloads[5].src = imagesPath + "txtarea_br_xon.gif";
  51. preloads[6] = new Image(); preloads[6].src = imagesPath + "txtarea_cntr_xon.gif";
  52. preloads[7] = new Image(); preloads[7].src = imagesPath + "txtarea_l_xon.gif";
  53. preloads[8] = new Image(); preloads[8].src = imagesPath + "txtarea_tl_xon.gif";
  54. preloads[9] = new Image(); preloads[9].src = imagesPath + "txtarea_tr_xon.gif";
  55. }
  56. //getting all the required elements
  57. function getElements() {
  58. var re = new RegExp('(^| )'+'niceform'+'( |$)');
  59. for (var nf = 0; nf < document.getElementsByTagName('form').length; nf++) {
  60. if(re.test(niceforms[nf].className)) {
  61. for(var nfi = 0; nfi < document.forms[nf].getElementsByTagName('input').length; nfi++) {inputs.push(document.forms[nf].getElementsByTagName('input')[nfi]);}
  62. for(var nfl = 0; nfl < document.forms[nf].getElementsByTagName('label').length; nfl++) {labels.push(document.forms[nf].getElementsByTagName('label')[nfl]);}
  63. for(var nft = 0; nft < document.forms[nf].getElementsByTagName('textarea').length; nft++) {textareas.push(document.forms[nf].getElementsByTagName('textarea')[nft]);}
  64. for(var nfs = 0; nfs < document.forms[nf].getElementsByTagName('select').length; nfs++) {selects.push(document.forms[nf].getElementsByTagName('select')[nfs]);}
  65. }
  66. }
  67. }
  68.  
  69. function replaceSelects() {
  70. for(var q = 0; q < selects.length; q++) {
  71. //create and build div structure
  72. var selectArea = document.createElement('div');
  73. var left = document.createElement('div');
  74. var right = document.createElement('div');
  75. var center = document.createElement('div');
  76. var button = document.createElement('a');
  77. var text = document.createTextNode(selectText);
  78. center.id = "mySelectText"+q;
  79. var selectWidth = parseInt(selects[q].className.replace(/width_/g, ""));
  80. center.style.width = selectWidth - 10 + 'px';
  81. selectArea.style.width = selectWidth + selectRightSideWidth + selectLeftSideWidth + 'px';
  82. button.style.width = selectWidth + selectRightSideWidth + selectLeftSideWidth + 'px';
  83. button.style.marginLeft = - selectWidth - selectLeftSideWidth + 'px';
  84. button.href = "javascript:showOptions("+q+")";
  85. button.onkeydown = selectEvent;
  86. button.className = "selectButton"; //class used to check for mouseover
  87. selectArea.className = "selectArea";
  88. selectArea.id = "sarea"+q;
  89. left.className = "left";
  90. right.className = "right";
  91. center.className = "center";
  92. right.appendChild(button);
  93. center.appendChild(text);
  94. selectArea.appendChild(left);
  95. selectArea.appendChild(right);
  96. selectArea.appendChild(center);
  97. //hide the select field
  98. selects[q].style.display='none';
  99. //insert select div
  100. selects[q].parentNode.insertBefore(selectArea, selects[q]);
  101. //build & place options div
  102. var optionsDiv = document.createElement('div');
  103. optionsDiv.style.width = selectWidth + 1 + 'px';
  104. optionsDiv.className = "optionsDivInvisible";
  105. optionsDiv.id = "optionsDiv"+q;
  106. optionsDiv.style.left = findPosX(selectArea) + 'px';
  107. optionsDiv.style.top = findPosY(selectArea) + selectAreaHeight - selectAreaOptionsOverlap + 'px';
  108. //get select's options and add to options div
  109. for(var w = 0; w < selects[q].options.length; w++) {
  110. var optionHolder = document.createElement('p');
  111. var optionLink = document.createElement('a');
  112. var optionTxt = document.createTextNode(selects[q].options[w].text);
  113. optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+");";
  114. optionLink.appendChild(optionTxt);
  115. optionHolder.appendChild(optionLink);
  116. optionsDiv.appendChild(optionHolder);
  117. //check for pre-selected items
  118. if(selects[q].options[w].selected) {selectMe(selects[q].id,w,q);}
  119. }
  120. //insert options div
  121. document.getElementsByTagName("body")[0].appendChild(optionsDiv);
  122. }
  123. }
  124. function showOptions(g) {
  125. elem = document.getElementById("optionsDiv"+g);
  126. if(elem.className=="optionsDivInvisible") {elem.className = "optionsDivVisible";}
  127. else if(elem.className=="optionsDivVisible") {elem.className = "optionsDivInvisible";}
  128. elem.onmouseout = hideOptions;
  129. }
  130. function hideOptions(e) { //hiding the options on mouseout
  131. if (!e) var e = window.event;
  132. var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
  133. if(((reltg.nodeName != 'A') && (reltg.nodeName != 'DIV')) || ((reltg.nodeName == 'A') && (reltg.className=="selectButton") && (reltg.nodeName != 'DIV'))) {this.className = "optionsDivInvisible";};
  134. e.cancelBubble = true;
  135. if (e.stopPropagation) e.stopPropagation();
  136. }
  137. function selectMe(selectFieldId,linkNo,selectNo) {
  138. //feed selected option to the actual select field
  139. selectField = document.getElementById(selectFieldId);
  140. for(var k = 0; k < selectField.options.length; k++) {
  141. if(k==linkNo) {selectField.options[k].selected = "selected";}
  142. else {selectField.options[k].selected = "";}
  143. }
  144. //show selected option
  145. textVar = document.getElementById("mySelectText"+selectNo);
  146. var newText = document.createTextNode(selectField.options[linkNo].text);
  147. textVar.replaceChild(newText, textVar.childNodes[0]);
  148. }
  149. function selectEvent(e) {
  150. if (!e) var e = window.event;
  151. var thecode = e.keyCode;
  152. switch(thecode){
  153. case 40: //down
  154. var fieldId = this.parentNode.parentNode.id.replace(/sarea/g, "");
  155. var linkNo = 0;
  156. for(var q = 0; q < selects[fieldId].options.length; q++) {if(selects[fieldId].options[q].selected) {linkNo = q;}}
  157. ++linkNo;
  158. if(linkNo >= selects[fieldId].options.length) {linkNo = 0;}
  159. selectMe(selects[fieldId].id, linkNo, fieldId);
  160. break;
  161. case 38: //up
  162. var fieldId = this.parentNode.parentNode.id.replace(/sarea/g, "");
  163. var linkNo = 0;
  164. for(var q = 0; q < selects[fieldId].options.length; q++) {if(selects[fieldId].options[q].selected) {linkNo = q;}}
  165. --linkNo;
  166. if(linkNo < 0) {linkNo = selects[fieldId].options.length - 1;}
  167. selectMe(selects[fieldId].id, linkNo, fieldId);
  168. break;
  169. default:
  170. break;
  171. }
  172. }
  173.  
  174. window.onload = init;
Garrappachc
Co i jak przeładować?
miska
http://www.badboy.ro/assets/articles/nicef.../niceforms.html

Mam formularz który po wybraniu z pola select jakiejś opcji przeładowywał formularz poprzez

  1. <select name=\"idoddzial\" onchange=\"form.submit\">


skrypt ten co pokazałem podmienia wygląd formularza i onchange w nim nie działa ;(
a muszę jakoś ten formularz przeładować ;(
gadzio
sproboj funkcji OnForm,

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.