2009-07-03 16 views
9

अक्षम = "सत्य" का उपयोग किये बिना उपयोगकर्ता को इनपुट फ़ील्ड में मूल्य बदलने के लिए कैसे रोकूं (जिसमें क्लिपबोर्ड में कॉपी करने के लिए एक निश्चित मान शामिल है)? उपयोगकर्ता को फ़ील्ड में क्लिक करने के बाद पाठ का चयन किया जाना चाहिए (जो पहले से ही काम कर रहा है) लेकिन कुछ भी दर्ज करने से कोई प्रभाव नहीं पड़ेगा।जावास्क्रिप्ट/jQuery: सक्रिय इनपुट फ़ील्ड को बदलने से कैसे रोकें?

धन्यवाद

jQuery('input.autoselect[value]').focus(function() { jQuery(this).select(); }); 
+1

तो तुम एक इनपुट, एक तत्व उपयोगकर्ता से डेटा प्राप्त है और यह प्रणाली में डाल दिया, एक के रूप में करने के लिए पूरी तरह से तैयार किया गया है उत्पादन? और अब आप इनपुट स्वीकार करने के लिए डिज़ाइन किए गए इनपुट की समस्या के आसपास काम करने की कोशिश कर रहे हैं? मैं मार्कअप को ठीक कर दूंगा ताकि आप आउटपुट के लिए पूरी तरह से इनपुट का उपयोग नहीं कर रहे हों। – Quentin

+0

के लिए डाउनवोट क्या है ??? –

+0

यूट्यूब देखें, वे वही कर रहे हैं। मैं बस एक शॉर्टलिंक प्रदान करना चाहता हूं जिसे उपयोगकर्ता आसानी से क्लिपबोर्ड में कॉपी करने में सक्षम होना चाहिए। इसमें गलत क्या है??? इनपुट फ़ील्ड में कुछ फायदे हैं। बस उत्पादक होने की कोशिश करो! –

उत्तर

33

केवल पढ़ने के लिए इनपुट के HTML में सभी आपके द्वारा संपादित इनपुट से उपयोगकर्ता को रोकने के लिए की जरूरत है।

<input readonly="readonly" type="text" value="You can't edit me!"/> 
+1

हाहा, यह इतना शर्मनाक है ... आप ठीक है, मैंने केवल अक्षम कोशिश की लेकिन पढ़ा नहीं, कुल मिलाकर इसके बारे में भूल गए! धन्यवाद! –

+1

+1 मैं भी मूर्ख हूं। :-) मैंने "अक्षम किए बिना" पढ़ा और सोचा "गुणों का उपयोग किए बिना"। – Stobor

+0

कोई समस्या नहीं! मैंने सिर्फ प्रश्न (3 बार) पढ़ा और उलझन में था कि चाल क्या थी। ;-) – scunliffe

0

मुझे लगता है कि यह काम करना चाहिए:

var val = jQuery('input.autoselect[value]').val(); 
jQuery('input.autoselect[value]').change(function(){ 
    jQuery(this).val(val); 
}); 

या संभवतः (यकीन नहीं)

jQuery('input.autoselect[value]').keydown(function(){ 
    return false; 
}); 
+0

धन्यवाद, दूसरा संस्करण काम करता है लेकिन उपयोगकर्ता को सामग्री की प्रतिलिपि बनाने से रोकता है (क्योंकि सीएमडी + सी या तो काम नहीं करता है), पहले संस्करण के साथ मुझे समस्या है कि इसे किसी पृष्ठ पर 1 से अधिक फ़ील्ड के लिए काम करना चाहिए। कोई विचार कैसे इस को हल किया जा सकता है? –

0

पर Pim's answer आधार पर, कैसे इस बारे में?

jQuery(document).ready(function(){ 

    jQuery("input.readonly").each(function(){ 
      jQuery(this).attr("savedVal", jQuery(this).val()); 
    }); 

    jQuery("input.readonly").change(function(){ 
      jQuery(this).val(jQuery(this).attr("savedVal")); 
    }); 

}); 

(पूरी तरह से अपरीक्षित, लेकिन यह विचार को दर्शाता है ...)

+0

उदाहरण: http://jsbin.com/iqomu (स्रोत http://jsbin.com/iqomu/edit) – Stobor

+0

धन्यवाद, लेकिन स्कुनलिफ़ ने इसे सबसे सुंदर ढंग से हल किया ... –

0
<script> 
document.getElementById("newval").readOnly = true; 
</script> 

राजधानी "ओ" केवल पढ़ने के लिए घड़ी ...

संबंधित मुद्दे