TIP: lấy field name

Với những required như này việc ngồi dò field bằng việc inspect, chuyển tab qua lại khá loằng ngoằng, mất thời gian.

  1. /*
  2. * Chuyển str = '"Loại giao dịch" là "Đáo" thì sẽ require các trường "Loan Amount Request_Total", "Số tiền cần nạp đáo", "Loan Amount Transaction", "Loan Amount Transaction 2", "Số tiền góp hàng tháng", "Phí chuyển đổi trả góp", "Loan Tenor", "User Thực hiện giao dịch", "Card number", "Mã CVV", "Ngày hết hạn thẻ", "Ngày sao kê"';
  3. * sang mảng, tuỳ vào định dạng để sửa lại.
  4. */
  5. function convertRequestToArray(str) {
  6. str = str.replaceAll('"', '');
  7. str = str.replaceAll(', ', ',');
  8. let arr = str.split(',');
  9. return arr;
  10. }
  11.  
  12. /*
  13. * Lấy field name của một element dựa vào label
  14. */
  15. function getFieldName(fieldLabel) {
  16. letfieldName = $("td:contains(" + fieldLabel + ")").next().find('input').attr('name');
  17. if (typeof fieldName === "undefined") {
  18. fieldName = $("td:contains(" + fieldLabel + ")").next().find('select').attr('name');
  19. }
  20. return fieldName;
  21. }
  22.  
  23. /*
  24. *
  25. */
  26. function getArrayFiledNameOfRequest(arr) {
  27. arr = arr.map(i=>getFieldName(i));
  28. return arr.filter(item=>typeof item != "undefined");
  29. }
  30.  
  31.  
  32. function convertToJquerySelector(arrFieldName) {
  33. arrFieldName = arrFieldName.map(i=>"[name='"+i+"']");
  34. returnarrFieldName.join(", ");
  35. }
  36.  
  37.  
  38. function handler(strRequest) {
  39. arr = convertRequestToArray(strRequest);
  40. listFieldName = getArrayFiledNameOfRequest(arr);
  41. returnconvertToJquerySelector(listFieldName);
  42. }

Result:

‘[name=’cf_1109′],[name=’cf_1151′],[name=’cf_1077′],[name=’cf_1107′],[name=’cf_1169′],[name=’cf_1185′],[name=’cf_1191′],[name=’cf_1123′],[name=’cf_1143′],[name=’cf_1147′], [name=’cf_1145′],[name=’cf_1187′]’ bất chấp khách sửa muốn cả triệu field :v

Leave a Reply

You must be logged in to post a comment.