පෝරම ඉදිරිපත් කිරීමෙන් බොත්තම් වලක්වා ගන්නේ කෙසේද


931

ඊළඟ පිටුවේ, ෆයර්ෆොක්ස් සමඟ ඉවත් කිරීමේ බොත්තම පෝරමය ඉදිරිපත් කරයි, නමුත් එකතු කිරීමේ බොත්තම එසේ නොවේ.

removeපෝරමය ඉදිරිපත් කිරීමෙන් බොත්තම වළක්වා ගන්නේ කෙසේද ?

function addItem() {
  var v = $('form :hidden:last').attr('name');
  var n = /(.*)input/.exec(v);

  var newPrefix;
  if (n[1].length == 0) {
    newPrefix = '1';
  } else {
    newPrefix = parseInt(n[1]) + 1;
  }

  var oldElem = $('form tr:last');
  var newElem = oldElem.clone(true);
  var lastHidden = $('form :hidden:last');

  lastHidden.val(newPrefix);

  var pat = '=\"' + n[1] + 'input';

  newElem.html(newElem.html().replace(new RegExp(pat, 'g'), '=\"' + newPrefix + 'input'));
  newElem.appendTo('table');
  $('form :hidden:last').val('');
}

function removeItem() {
  var rows = $('form tr');
  if (rows.length > 2) {
    rows[rows.length - 1].html('');
    $('form :hidden:last').val('');
  } else {
    alert('Cannot remove any more rows');
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<html>
<body>
    <form autocomplete="off" method="post" action="">
        <p>Title:<input type="text" /></p>
        <button onclick="addItem(); return false;">Add Item</button>
        <button onclick="removeItem(); return false;">Remove Last Item</button>
        <table>
            <th>Name</th>

            <tr>
                <td><input type="text" id="input1" name="input1" /></td>
                <td><input type="hidden" id="input2" name="input2" /></td>
            </tr>
        </table>
        <input id="submit" type="submit" name="submit" value="Submit">
    </form>
</body>

</html>


කරුණාකර ඔබ නිර්දේශ කරන්නේ කුමන පිළිතුරද?
sanepete

Answers:


1846

ඔබ භාවිතා කරන්නේ HTML5 බොත්තම් අංගයකි. මෙහි ඇති පරිදි W3 පිරිවිතරයේ සඳහන් පරිදි මෙම බොත්තම ඉදිරිපත් කිරීමේ පෙරනිමි හැසිරීමක් ඇති බව මතක තබා ගන්න: W3C HTML5 බොත්තම

එබැවින් ඔබ එහි වර්ගය පැහැදිලිව සඳහන් කළ යුතුය:

<button type="button">Button</button>

පෙරනිමි ඉදිරිපත් කිරීමේ වර්ගය අභිබවා යාමට. මට අවශ්‍ය වන්නේ මෙය සිදුවීමට හේතුව පෙන්වා දීමටයි.


25
වර්ගීකරණ ලක්ෂණයක් සහිත HTML මූලද්‍රව්‍යයක් , බොත්තමක් වන එක් වර්ගයක් f # $ 'n සුපුරුදු ආකාරයේ ඉදිරිපත් කිරීමක් නොතිබිය යුතු බව පෙන්වා දීමට කැමැත්තෙමි . එය නිකම්ම මෝඩකමක් වන අතර පිරිවිතරයේ විශාල වැරැද්දකි. මම නිතරම පෝරම වල බොත්තම් භාවිතා කරමි, එය එජ් කේස් එකක් වුවද (එය එසේ නොවේ), පෙරනිමි වර්ගය ඉදිරිපත් කිරීම අර්ථවත් වනු ඇත.
dudewad

3
Week මම මේ සතියේ වැඩි කාලයක් ගත කළේ පෝරමයක් තුළ ඇති බොත්තමක් භාවිතා කරමින් මොඩලයක් විවෘත කරන විට මගේ ඉලෙක්ට්‍රෝන යෙදුම “ප්‍රබෝධමත්” වීම නිසාය. එය එක් වරක් සිදු වන අතර පසුව යෙදුම මා බලාපොරොත්තු වූ පරිදි ක්‍රියා කරයි. මට දැනගෙන හිටියේ නැහැ මොනවද වෙන්නේ කියලා. මේ එයයි! පෙරනිමි වර්ගය ඉදිරිපත් කිරීම පිළිබඳව මට කිසිදු ගැටළුවක් නොමැත. එය ලබා දී ඇති නමුත් එය ටිකක් ඉගෙන ගැනීමට මට වසර පහක් ගතවී ඇත.
freethebees

6
ඔබගේ සඳහනට ස්තූතියි, පෝරමය සඳහා යළි පිහිටුවීමේ වර්ගයක් ඇති බව මම දැන ගතිමි. නියමයි!
Duong Nguyen

1
"අපි එය <button> ලෙස හඳුන්වමු." "නියමයි! එහි පෙරනිමි හැසිරීම කුමක් විය යුතුද ..." "බොත්තමක් නොවේද?" "ඒක නැව්ගත කරන්න."
කොලින්

606

ඔබගේ බොත්තම් මත වර්ගය සකසන්න:

<button type="button" onclick="addItem(); return false;">Add Item</button>
<button type="button" onclick="removeItem(); return false;">Remove Last Item</button>

... එමඟින් සිදුවීම් හසුරුවන්නා තුළ ව්‍යතිරේකයක් සිදු වූ විට ඉදිරිපත් කිරීමේ ක්‍රියාවලියක් අවුලුවාලීමට එය වළක්වයි. removeItem()ව්‍යතිරේකයක් අවුලුවන පරිදි ඔබේ ක්‍රියාකාරිත්වය නිවැරදි කරන්න :

function removeItem() {
  var rows = $('form tr');
  if ( rows.length > 2 ) {
    // change: work on filtered jQuery object
    rows.filter(":last").html('');
    $('form :hidden:last').val('');
  } else {
    alert('Cannot remove any more rows');
  }
}

වෙනස සැලකිල්ලට ගන්න: ඔබේ මුල් කේතය jQuery කට්ටලයෙන් HTML අංගයක් උපුටා ගත් අතර, ඒ මත jQuery ක්‍රමයක් ඇමතීමට උත්සාහ කළේය - මෙය ව්‍යතිරේකයක් විසි කළ අතර එහි ප්‍රති the ලයක් ලෙස බොත්තම සඳහා පෙරනිමි හැසිරීමක් ඇති විය.

FWIW, ඔබට මේ සමඟ යා හැකි තවත් ක්‍රමයක් තිබේ ... ඔබේ සිදුවීම් හසුරුවන්නන් jQuery භාවිතා කර වයර් කරන්න, සහ පෙරනිමි හැසිරීම අවලංගු කිරීමට jQuery හි සිදුවීම් වස්තුවෙහි වැළැක්වීමේ ඩීෆෝල්ට් () ක්‍රමය භාවිතා කරන්න :

$(function() // execute once the DOM has loaded
{

  // wire up Add Item button click event
  $("#AddItem").click(function(event)
  {
    event.preventDefault(); // cancel default behavior

    //... rest of add logic
  });

  // wire up Remove Last Item button click event
  $("RemoveLastItem").click(function(event)
  {
    event.preventDefault(); // cancel default behavior

    //... rest of remove last logic
  });

});

...

<button type="button" id="AddItem" name="AddItem">Add Item</button>
<button type="button" id="RemoveLastItem" name="RemoveLastItem">Remove Last Item</button>

මෙම තාක්ෂණය, එක් තැනක ඔබගේ තර්ක සියල්ල කරයි එය දෝශනිරාකරණ වාර්ථා කිරීමට පහසු ... එය ද ඔබ වෙනස් කිරීම මගින් පහත වැටීමට ආපසු ක්රියාත්මක කිරීමට ඉඩ typeආපසු බොත්තම් මත submitඅතර මෙම අවස්ථාවට සර්වර්-සයිඩ් කටයුතු - මෙම ලෙස හැඳින්වෙන වන්නේ පැතලි ජාවාස්ක්‍රිප්ට් .


5
type = "බොත්තම" සෑම විටම මට ෆයර්ෆොක්ස් හි ක්‍රියා නොකරයි. Js ප්‍රමාණවත් තරම් සංකීර්ණ නම් සහ දෝෂයක් තිබේ නම් ෆයර්ෆොක්ස් කෙසේ හෝ පෝරමය ඉදිරිපත් කරයි. උමතුව!
මැතිව් ලොක්

1
Att මැතිව්ලොක්: අමාරුයි - ස්ක්‍රිප්ටයේ දෝෂයක් එම කේත වාරණය වසා දමයි, ක්‍රියාව සුපුරුදු පරිදි ඉදිරියට යයි. JQuery සිදුවීම් ක්‍රම e.preventDefault () සහ / හෝ e.stopPropgation () ක්‍රමයේ පළමු පේළි ලෙස යෙදවීමට උත්සාහ කරන්න. Stackoverflow.com/questions/2017755/… බලන්න සඳහා
බ්‍රිචින්ස්

8
type = බොත්තම කිසි විටෙකත් පෝරමය ඉදිරිපත් නොකළ යුතුය
මැතිව් ලොක්

1
return falseඑතරම් වැදගත් ය. සමහර විට එය ඉදිරිපත් කිරීමේ බොත්තම සඳහා පවා භාවිතා කරන්න (onclick
ජේමි

8
මම හිතන්නේ html මෙතන අමුතුයි. එය පෙරනිමියෙන් ටයිප් = "බොත්තම" විය යුතුය, ඉදිරිපත් නොකරයි. එය පෙරනිමියෙන් ඉදිරිපත් කිරීම දැකීම මට සැමවිටම අනපේක්ෂිත ය. එය ව්යතිරේකයයි.
httpete

31

කලකට පෙර මට සමාන දෙයක් අවශ්‍ය විය ... මට එය ලැබුණි.

එබැවින් මා මෙහි තබන්නේ ජාවාස්ක්‍රිප්ට් විසින් කිසිදු වලංගු භාවයකින් තොරව ඉදිරිපත් කළ හැකි ආකෘති පත්‍රයක් ලබා ගැනීම සඳහා උපක්‍රම කරන්නේ කෙසේද යන්න සහ පරිශීලකයා බොත්තමක් එබූ විට පමණක් (සාමාන්‍යයෙන් යවන බොත්තමක්).

උදාහරණයක් ලෙස මම අවම පෝරමයක් භාවිතා කරමි, ක්ෂේත්‍ර දෙකක් සහ ඉදිරිපත් කිරීමේ බොත්තමක් පමණි.

අවශ්‍ය දේ මතක තබා ගන්න: ජාවාස්ක්‍රිප්ට් වෙතින් එය කිසිදු පරීක්ෂාවකින් තොරව ඉදිරිපත් කළ හැකිය. කෙසේ වෙතත්, පරිශීලකයා එවැනි බොත්තමක් එබුවහොත්, වලංගු කිරීම සිදු කළ යුතු අතර, ආකෘති පත්‍රය යවනු ලබන්නේ වලංගු භාවය සමත් වුවහොත් පමණි.

සාමාන්‍යයෙන් සියල්ල ආරම්භ වන්නේ මේ අසල ඇති දෙයකින් ය (මම වැදගත් නොවන සියලුම අමතර දේවල් ඉවත් කළෙමි):

<form method="post" id="theFormID" name="theFormID" action="">
   <input type="text" id="Field1" name="Field1" />
   <input type="text" id="Field2" name="Field2" />
   <input type="submit" value="Send" onclick="JavaScript:return Validator();" />
</form>

පෝරම ටැගය නොමැති ආකාරය බලන්න onsubmit="..."(එය නොතිබීම කොන්දේසියක් බව මතක තබා ගන්න).

ගැටළුව වන්නේ ආකෘති පත්‍රය සෑම විටම ඉදිරිපත් කිරීමයි onclick වාර්තා trueහෝ false.

මම වෙනස් නම් type="submit"සඳහා type="button", එය වෙනදා වැඩ වෙන්නේ නැහැ. එය කිසි විටෙකත් පෝරමය යවන්නේ නැත, නමුත් එය පහසුවෙන් කළ හැකිය.

ඉතින් අවසානයේ මම මෙය භාවිතා කළෙමි:

<form method="post" id="theFormID" name="theFormID" action="">
   <input type="text" id="Field1" name="Field1" />
   <input type="text" id="Field2" name="Field2" />
   <input type="button" value="Send" onclick="JavaScript:return Validator();" />
</form>

සහ function Validator, කොහෙදreturn True; , මම ජාවාස්ක්‍රිප්ට් ඉදිරිපත් කිරීමේ වාක්‍යයක්ද එක් කරමි, මේ හා සමාන දෙයක්:

function Validator(){
   //  ...bla bla bla... the checks
   if(                              ){
      document.getElementById('theFormID').submit();
      return(true);
   }else{
      return(false);
   }
}

එම id="" පමණක් JavaScript සඳහාgetElementById , මෙම name=""එය තැපැල් දත්ත මත පෙනී ඒ සඳහා වේ.

ඒ ආකාරයෙන් එය මට අවශ්‍ය පරිදි ක්‍රියාත්මක වේ.

මම මෙය තැබුවේ අවශ්‍ය නොවන පුද්ගලයින් සඳහා පමණි onsubmit පෝරමයේ ක්‍රියාකාරීත්වයක් , නමුත් පරිශීලකයා විසින් බොත්තමක් එබූ විට යම් වලංගු භාවයක් ලබා දෙන්න.

පෝරම ටැගය පිළිබඳ මට ඉදිරිපත් කිරීමක් අවශ්‍ය නොවන්නේ ඇයි? පහසු, වෙනත් ජාවාස්ක්‍රිප්ට් කොටස් මත මට ඉදිරිපත් කිරීමක් කළ යුතු නමුත් කිසිදු වලංගු භාවයක් අවශ්‍ය නොවේ.

හේතුව: පරිශීලකයා මට අවශ්‍ය ඉදිරිපත් කිරීම සිදු කරන්නේ නම් සහ එය වලංගු කිරීම අවශ්‍ය වේ, නමුත් එය ජාවාස්ක්‍රිප්ට් නම් සමහර විට මට ඉදිරිපත් කිරීම සිදු කළ යුතු අතර එවැනි වලංගු කිරීම් මග හැරෙනු ඇත.

එය අමුතු දෙයක් ලෙස පෙනෙන්නට පුළුවන, නමුත් උදාහරණයක් ලෙස සිතන විට නොවේ: පිවිසුමක ... සමහර සීමාවන් සහිතව ... PHP සැසි භාවිතා කිරීමට ඉඩ නොදීම සහ කුකීස් සඳහාද අවසර නැත!

එබැවින් ඕනෑම සබැඳියක් එවැනි ආකෘති ඉදිරිපත් කිරීමක් බවට පරිවර්තනය කළ යුතුය, එබැවින් පිවිසුම් දත්ත නැති නොවේ. කිසිදු පිවිසුමක් තවමත් සිදු කර නොමැති විට, එය ද ක්‍රියාත්මක විය යුතුය. එබැවින් සබැඳි වල කිසිදු වලංගු භාවයක් සිදු නොකළ යුතුය. නමුත් පරිශීලකයා සහ පාස් යන ක්ෂේත්‍ර දෙකටම පරිශීලකයා ඇතුළු වී නොමැති නම් පරිශීලකයාට පණිවිඩයක් ඉදිරිපත් කිරීමට මට අවශ්‍යය. එබැවින් එකක් අතුරුදහන් නම්, පෝරමය යැවිය යුතු නැත! ගැටලුව තිබේ.

ගැටළුව බලන්න: එක් ක්ෂේත්‍රයක් හිස් වූ විට පෝරමය යැවිය යුතු නොවේ, පරිශීලකයා බොත්තමක් එබූ විට පමණක්, එය ජාවාස්ක්‍රිප්ට් කේතයක් නම් එය යැවිය හැකි විය යුතුය.

මම onsubmitපෝරම ටැගය මත වැඩ කරන්නේ නම්, එය පරිශීලකයා හෝ වෙනත් ජාවාස්ක්‍රිප්ට් දැයි දැන ගැනීමට අවශ්‍ය වේ. කිසිදු පරාමිතියක් සම්මත කළ නොහැකි බැවින් එය කෙලින්ම කළ නොහැකි බැවින් සමහර අය වලංගු භාවයක් කළ යුතුද නැද්ද යන්න පැවසීමට විචල්‍යයක් එක් කරති. වලංගු කිරීමේ ශ්‍රිතයේ පළමු දෙය නම් එම විචල්‍ය අගය පරීක්ෂා කිරීම යනාදියයි ... ඉතා සංකීර්ණ වන අතර කේතයෙන් සැබවින්ම අවශ්‍ය දේ නොකියයි.

එබැවින් විසඳුම වන්නේ පෝරම ටැගය මත ඉදිරිපත් නොකිරීමයි. ඉන්සෙඩ් එය සැබවින්ම අවශ්‍ය තැන බොත්තම මත තබන්න.

අනෙක් පැත්තෙන්, සංකල්පමය වශයෙන් මට onsubmit වලංගුකරණය අවශ්‍ය නොවන බැවින් onsubmit කේතය දමන්නේ ඇයි? මට ඇත්තටම බොත්තම් වලංගුකරණය අවශ්‍යයි.

කේතය වඩාත් පැහැදිලිව පෙනෙනවා පමණක් නොව, එය තිබිය යුතු තැනයි. මෙය මතක තබා ගන්න: - ජාවාස්ක්‍රිප්ට් පෝරමය වලංගු කිරීම මට අවශ්‍ය නැත (එය සැමවිටම සේවාදායක පැත්තේ PHP විසින් කළ යුතුය) - මට අවශ්‍ය වන්නේ සියලුම ක්ෂේත්‍ර හිස් නොවිය යුතු බවට පණිවිඩයක් පරිශීලකයාට පෙන්වීමටය, එයට ජාවාස්ක්‍රිප්ට් (සේවාදායකයා) අවශ්‍ය වේ. පැත්ත)

ඉතින් සමහර අය (සිතන්න හෝ මට කියන්න) එය කළ යුත්තේ වලංගු වලංගු භාවයක් මතද? නැත, සංකල්පමය වශයෙන් මම සේවාදායකයාගේ පැත්තෙන් වලංගු කිරීමක් සිදු නොකරමි. මම කරන්නේ බොත්තමක් එබීමෙන් යමක් කිරීම පමණි, එබැවින් එය ක්‍රියාත්මක කිරීමට ඉඩ නොදෙන්නේ ඇයි?

එම කේතය සහ ශෛලිය උපක්‍රමය මනාව ඉටු කරයි. ඕනෑම ජාවාස්ක්‍රිප්ට් එකක මා තැබූ පෝරමය යැවීමට අවශ්‍යයි:

document.getElementById('theFormID').action='./GoToThisPage.php'; // Where to go
document.getElementById('theFormID').submit(); // Send POST data and go there

මට එය අවශ්‍ය නොවන විට එය වලංගු කිරීම මඟ හැරේ. එය පෝරමය යවා වෙනත් පිටුවක් පූරණය කරයි.

නමුත් පරිශීලකයා ඉදිරිපත් කිරීමේ බොත්තම ක්ලික් කළහොත් (අකා type="button"නොවේ type="submit") ආකෘති පත්‍රය ඉදිරිපත් කිරීමට පෙර වලංගු කිරීම සිදු කරනු ලබන අතර වලංගු නොවේ නම් එවනු නොලැබේ.

දිගු හා සංකීර්ණ කේත උත්සාහ නොකිරීමට මෙය අන් අයට උපකාරී වේ යැයි සිතමු. onsubmitඅවශ්‍ය නොවේ නම් භාවිතා නොකරන්න onclick. නමුත් වෙනස් type="submit"කිරීමට මතක තබා ගන්න type="button", කරුණාකර submit()ජාවාස්ක්‍රිප්ට් මඟින් එය කිරීමට අමතක නොකරන්න .


27

මම ඒ වෙනුවට භාවිතා කළ හැකි වුවත් මම ෂෝග් 9 සමඟ එකඟ වෙමි:

<input type = "button" onClick="addItem(); return false;" value="Add Item" />

W3 පාසල් වලට අනුව , <button>ටැගය විවිධ බ්‍රව්සර්වල වෙනස් හැසිරීම් ඇත.


18

ඔබේ HTML පෝරමය තිබේ යැයි සිතමු id="form_id"

<form id="form_id">
<!--your HTML code-->
</form>

ප්‍රති result ලය බැලීමට ඔබේ කේතයට මෙම jQuery ස්නිපටය එක් කරන්න,

$("#form_id").submit(function(){
  return false;
});

18

ඔබට jQuery භාවිතයෙන් ඔබේ බොත්තම් වල සඳහන ලබා ගත හැකි අතර පහත පරිදි එහි ප්‍රචාරණය වළක්වා ගත හැකිය:

 $(document).ready(function () {
    $('#BUTTON_ID').click(function(e) {

            e.preventDefault();
            e.stopPropagation();
            e.stopImmediatePropagation();

            return false;
    });});

2
e.preventDefault(); e.stopPropagation();දේවල් වැඩ කිරීමට ප්‍රමාණවත්. e.stopImmediatePropagation()මෙය Chrome හි නිර්වචනය නොකළ ක්‍රමයේ දෝෂයක් විසි කරයි.
ෆීනික්ස්

16

$("form").submit(function () { return false; }); එමඟින් බොත්තම ඉදිරිපත් කිරීම වලක්වනු ඇත, නැතහොත් ඔබට බොත්තම වර්ගය "බොත්තම" ලෙස වෙනස් කළ හැකිය, <input type="button"/>ඒ වෙනුවට <input type="submit"/> ක්‍රියා කරන්නේ මෙම බොත්තම මෙම පෝරමයේ ඇති එකම බොත්තම නොවේ නම් පමණි.


2
මෙය jQuery සඳහා වන අතර, ජාවාස්ක්‍රිප්ට් හි සමාන වේ: myform.onsubmit = function () false බොරු ආපසු එවන්න} ... එසේම, ඔබ ඉදිරිපත් කිරීමේ බොත්තම ඉවත් කළද, වෙනත් පෝරම ක්ෂේත්‍රයකින් එන්ට එබීමෙන් පෝරමය ඉදිරිපත් කළ හැකිය.
Synexis

10

මෙය පවසා ඇති පරිදි html5 දෝෂයකි, ඔබට තවමත් බොත්තම ඉදිරිපත් කිරීමක් ලෙස තබා ගත හැකිය (ඔබට ජාවාස්ක්‍රිප්ට් සහ ජාවාස්ක්‍රිප්ට් නොවන පරිශීලකයින් යන දෙකම ආවරණය කිරීමට අවශ්‍ය නම්) එය භාවිතා කරමින්:

     <button type="submit" onclick="return false"> Register </button>

මේ ආකාරයෙන් ඔබ ඉදිරිපත් කිරීම අවලංගු කරන නමුත් ඔබ jquery හෝ javascript ශ්‍රිතයේ කරන ඕනෑම දෙයක් කර javascript නොමැති පරිශීලකයින් සඳහා ඉදිරිපත් කරන්න.


9

ආපසු පැමිණීම අසත්‍යය පෙරනිමි හැසිරීම වළක්වයි. නමුත් ආපසු පැමිණීම අසත්‍යය අතිරේක ක්ලික් සිදුවීම් වල බුබුල බිඳ දමයි. මෙයින් අදහස් කරන්නේ මෙම ශ්‍රිතය ඇමතීමෙන් පසුව වෙනත් ක්ලික් බන්ධන තිබේ නම්, අනෙක් ඒවා නොසලකයි.

 <button id="btnSubmit" type="button">PostData</button>
 <Script> $("#btnSubmit").click(function(){
   // do stuff
   return false;
}); </Script>

නැතහොත් සරලව ඔබට මේ ආකාරයට තැබිය හැකිය

 <button type="submit" onclick="return false"> PostData</button>

8

මට විශ්වාසයි එෆ්එෆ් මත

removeItem 

ශ්‍රිතය ජාවාස්ක්‍රිප්ට් දෝෂයකට මුහුණ දෙයි, මෙය IE මත සතුටට පත් නොවේ

ජාවාස්ක්‍රිප්ට් දෝෂයක් දිස් වූ විට "ආපසු වැරදි" කේතය ක්‍රියාත්මක නොවන අතර එමඟින් පිටුව පසුබැස්මක් බවට පත් වේ


7

e.preventDefault();ඔබගේ ක්‍රමයට එක් කිරීමෙන් ඔබගේ පිටුව පෝරම ඉදිරිපත් කිරීමෙන් වලක්වනු ඇත.

function myFunc(e){
       e.preventDefault();
}

අනුව MDN වෙබ් ලියකියවිලි

සිදුවීම් අතුරුමුහුණතේ වැළැක්වීමේ ඩීෆෝල්ට් () ක්‍රමය පරිශීලක නියෝජිතයාට පවසන්නේ සිද්ධිය පැහැදිලිව සකසා නොමැති නම්, එහි පෙරනිමි ක්‍රියාව සාමාන්‍යයෙන් මෙන් සැලකිල්ලට නොගත යුතු බවයි. මෙම සිදුවීම සුපුරුදු පරිදි අඛණ්ඩව ප්‍රචාරය කරනු ලැබේ, එහි සවන්දෙන්නෙකු ඇමතීම stopPropagation ()හෝ stopImmediatePropagation ()ප්‍රචාරණය නතර කිරීම හැර.


6

ඔබේ බොත්තම සාමාන්‍ය ආකාරයෙන් සකසා event.preventDefault වැනි ..

   <button onclick="myFunc(e)"> Remove </button>  
   ...
   ...

   In function...

   function myFunc(e){
       e.preventDefault();
   }

4
return false;

ශ්‍රිතය අවසානයේ හෝ ශ්‍රිත ඇමතුමෙන් පසුව ඔබට ව්‍යාජ ලෙස ආපසු යා හැකිය.

එය අවසන් වරට සිදුවන තාක් කල්, පෝරමය ඉදිරිපත් නොවේ.


2

මෙන්න සරල ප්‍රවේශයක්:

$('.mybutton').click(function(){

    /* Perform some button action ... */
    alert("I don't like it when you press my button!");

    /* Then, the most important part ... */
    return false;

});

1

පහත දැක්වෙන නියැදි කේතය මඟින් පෝරමය ඉදිරිපත් කිරීමෙන් බොත්තම ක්ලික් කිරීම වළක්වා ගන්නේ කෙසේද යන්න පෙන්වයි.

ඔබට මගේ නියැදි කේතය උත්සාහ කළ හැකිය:

 <form autocomplete="off" method="post" action="">
   <p>Title:
     <input type="text" />
   </p>
   <input type="button" onclick="addItem()" value="Add Item">
   <input type="button" onclick="removeItem()" value="Remove Last Item">
   <table>
     <th>Name</th>

     <tr>
       <td>
         <input type="text" id="input1" name="input1" />
       </td>
       <td>
         <input type="hidden" id="input2" name="input2" />
       </td>
     </tr>
   </table>
   <input id="submit" type="submit" name="submit" value="Submit">
 </form>
<script language="javascript">
function addItem() {
return false;
}

function removeItem() {
return false;
}
</script>


0

RemIItem ශ්‍රිතය ඇත්ත වශයෙන්ම දෝෂයක් අඩංගු වන අතර එමඟින් පෝරම බොත්තම පෙරනිමි හැසිරීමක් කරයි (පෝරමය ඉදිරිපත් කිරීම). ජාවාස්ක්‍රිප්ට් දෝෂ කොන්සෝලය සාමාන්‍යයෙන් මෙම අවස්ථාවේ දී දර්ශකයක් ලබා දෙනු ඇත.

Javascript කොටසේ removeItem ශ්‍රිතය පරීක්ෂා කරන්න:

ඉර:

rows[rows.length-1].html('');

වැඩ කරන්නේ නැහැ. ඒ වෙනුවට මෙය උත්සාහ කරන්න:

rows.eq(rows.length-1).html('');
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.