अधिकांश इस तथ्य से भी अनजान हैं कि आप केवल उन्हें एक नाम / मूल्य जोड़ी देकर दबाए गए फॉर्म बटन को भेद सकते हैं। उदाहरण के लिए
<form action="process" method="post">
...
<input type="submit" name="edit" value="Edit">
<input type="submit" name="delete" value="Delete">
<input type="submit" name="move_up" value="Move up">
<input type="submit" name="move_up" value="Move down">
</form>
सर्वर साइड में, दबाया गया वास्तविक बटन केवल बटन नाम के साथ जुड़े अनुरोध पैरामीटर की उपस्थिति की जांच करके प्राप्त किया जा सकता है। अगर यह नही तोnull
, तो बटन दबाया गया था।
मैंने देखा है एक बहुत की अनावश्यक जेएस हैक / वर्कआर्ड को देखा है, उदाहरण के लिए फॉर्म एक्शन को बदलना या पहले से दबाए गए बटन के आधार पर एक छिपे हुए इनपुट मूल्य को बदलना। यह बस आश्चर्यजनक है।
इसके अलावा, मैंने कई जेएस हैक / वर्कअराउंड के रूप में लगभग कई चेकबॉक्सों के चेक टेबल को इकट्ठा करने के लिए देखा है जैसे तालिका पंक्तियों में। जेएस पंक्ति तालिका के प्रत्येक चयन / जांच में एक छिपे हुए इनपुट तत्व में पंक्ति के सूचकांक को कुछ अल्पविरामित मूल्य में जोड़ा जाएगा जो कि सर्वर साइड में आगे विभाजित / पार्स किया जाएगा। यह अनौपचारिकता का परिणाम है कि आप एक से अधिक इनपुट तत्वों को एक ही नाम दे सकते हैं लेकिन एक अलग मूल्य और यह कि आप अभी भी सर्वर साइड में एक सरणी के रूप में उन्हें एक्सेस कर सकते हैं। उदाहरण के लिए
<tr><td><input type="checkbox" name="rowid" value="1"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="2"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="3"></td><td> ... </td></tr>
...
अनजानता प्रत्येक चेकबॉक्स को एक अलग नाम देगा और संपूर्ण मूल्य विशेषता को छोड़ देगा। कुछ जेएस-हैक / वर्कअराउंड-फ्री स्थितियों में मैंने चेक साइड आइटम को अलग करने के लिए सर्वर साइड कोड में कुछ अनावश्यक रूप से भारी जादू देखा है ।