2010-07-25 24 views
10

ठीक है, आज मैं एक सहायक HTML फ़ंक्शन बना रहा हूं। यह इस तरह दिखता है:एचटीएमएल इनपुट ऑनफोकस और ऑनब्लूर?

function Input($name,$type,$lable,$value= null){ 
    if (isset($value)) { 
    //if (this.value=='search') this.value = '' 
    echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" value="'.$value.'" onfocus="if (this.value==\''.$value.'\') this.value = \'\' "/>'; 
    } 
    if (!isset($value)) { 
    echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" />'; 
    } 
} 

आप देख सकते हैं, तो आप एक मूल्य के यह कुछ जावास्क्रिप्ट करना होगा ताकि जब मैं बॉक्स पर क्लिक करें बॉक्स के अंदर पाठ गायब हो जाएगा, सम्मिलित करता है, तो

प्रश्न: जब हम इनपुट पर नहीं होते हैं तो हम इसे मूल्य कैसे बना सकते हैं? (कृपया, फिर भी एक stackoverflow पर है कि वापस आने के लिए नहीं है के बाद हम onBlur का उपयोग करके इनपुट बॉक्स पर इशारा करते हुए नहीं कर रहे हैं? शायद stackoverflow पर खोज बॉक्स को देखो? क्या मैं सही हूँ?

आशा है कि आप समझते हैं कि मैं क्या मतलब है।

ठीक क्योंकि आप में से कुछ नहीं मिल रहा है मैं क्या मतलब है

देख कृपया जब im उस पर क्लिक नहीं।

alt text http://img39.imageshack.us/img39/4128/48048759.png

जब im क्लिक करते हैं।

alt text http://img691.imageshack.us/img691/4485/94918020.png

जब im इसे फिर से क्लिक नहीं।

alt text http://img691.imageshack.us/img691/4485/94918020.png

यह

जब im उस पर क्लिक नहीं होना चाहिए।

alt text http://img39.imageshack.us/img39/4128/48048759.png

जब im क्लिक करते हैं।

alt text http://img691.imageshack.us/img691/4485/94918020.png

जब im इसे फिर से क्लिक नहीं।

alt text http://img39.imageshack.us/img39/4128/48048759.png

+0

फिक्स के लिए आपको gertG धन्यवाद। –

+0

आपकी छवियां गायब हो गईं। आपको उन्हें – mplungjan

उत्तर

29

आप इस

<input ... 
onfocus="if (this.value==this.defaultValue) this.value = ''" 
onblur="if (this.value=='') this.value = this.defaultValue" /> 

अद्यतन हैं: कुछ नए ब्राउज़रों तुम क्या चाहते हो जाएगा बस प्लेसहोल्डर विशेषता जोड़कर:

<input placeholder="Please enter your name" /> 

यहां आपके कोड

के अनुसार PHP है
echo <<<END 
<label for="$name">$lable</label> 
<input type="$type" name="$name" id="$name" value="$value" 
onfocus="if (this.value==this.defaultValue) this.value = ''" 
onblur="if (this.value=='') this.value = this.defaultValue"/> 
END; 
+0

हाँ यह इस तरह दिखना चाहिए :), मुझे पहले इसका अध्ययन करने दें :) –

+0

अभी भी कुछ समस्याएं हैं। 'echo '<इनपुट प्रकार = "'। $ प्रकार।'" नाम = "'$ नाम।'" Id = "'$ name।'" Value = "'$ value।'" Onfocus = "अगर (यह। value == this.defaultValue) this.value = \ '\' onblur = "if (this.value == \ '\') this.value = this.defaultValue" /> '; ' यह जैसा होगा '<इनपुट प्रकार =" पाठ "this.value =" this.defaultValue " "(यह .value =" = '') "if =" "onfocus =" if (this.value == this.defaultValue) यह। value = '' onblur = "value =" awdwadaw "id =" name "name =" name ">' –

+0

'echo'

3

अगर मैं सही ढंग से समझ, ताकि प्रभाव ऐसा करने के लिए HTML की इस पंक्ति का उपयोग करता है।

<input name="q" class="textbox" tabindex="1" onfocus="if (this.value=='search') this.value = ''" type="text" maxlength="80" size="28" value="search"> 

आपके प्रश्न से संबंधित नहीं है, लेकिन आप और एक और को बयान के साथ अपने दूसरे अगर बयान बदल दिया जाना चाहिए सकता है।

function Input($name,$type,$lable,$value= null){ 
    if (isset($value)) { 
    //if (this.value=='search') this.value = '' 
    echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" value="'.$value.'" onfocus="if (this.value==\''.$value.'\') this.value = \'\' "/>'; 
    } 
    else { 
    echo '<label for="'. $name .'">'. $lable .'</label><input type="'.$type.'" name="'. $name .'" id="'. $name .'" />'; 
    } 
} 

क्योंकि अगर isset ($ मूल्य) रिटर्न झूठी तो आप एक तथ्य यह सेट नहीं है कि क्योंकि यह केवल दो में से एक मान, सही या गलत के लिए लौट सकते हैं पता है।

संपादित करें: इस उत्तर को अस्वीकार करें। यह स्पष्ट नहीं था कि संपादन से पहले सवाल क्या था।

3

इस पृष्ठ के लिए स्रोत को देखते हुए पता चलता निम्नलिखित

<form id="search" action="/search" method="get"> 
    <div> 
    <input name="q" class="textbox" tabindex="1" 
    onfocus="if (this.value=='search') this.value = ''" 
    type="text" maxlength="80" size="28" value="search"> 
    </div> 
+0

हां के बजाय अपलोड करना चाहिए, लेकिन यह वापस नहीं आया: | जब मैं इसे फिर से कर रहा हूं .. –

+1

आपने एक उत्तर स्वीकार कर लिया। आप अभी भी क्यों देख रहे हैं? यह सही कोड है जो SO का उपयोग करता है। यह ठीक उसी तरह व्यवहार करेगा जैसा आप इस साइट पर देखते हैं। – Mike

2

या यह आप इसे वापस डिफ़ॉल्ट करने के लिए कोई बात नहीं बदलने के लिए क्या पाठ दर्ज किया गया है चाहते हैं, तो ...

<input ... 
onfocus="if (this.value==this.defaultValue) this.value = ''" 
onblur="if (this.value!=this.defaultValue) this.value = this.defaultValue" /> 
+0

पृथ्वी पर आप ऐसा क्यों करना चाहते हैं? तो आप इसे पढ़ सकते हैं। – mplungjan

+0

शायद आप चाहें चाहते हैं: '<इनपुट ... ऑनफोकस =" अगर (यह .value == this.defaultValue) this.value = '' ' onblur = "if (this.value! =' ') this.value = यह .defaultValue "/>' 'इनपुट' ध्यान केंद्रित करते समय कोई टेक्स्ट दर्ज नहीं किया गया था, तो इस तरह से टेक्स्ट वापस प्राप्त करें। – mickey

0

इस प्रयास करें। शायद यह आपकी मदद कर सकता है:

<form action="/search" method="get"> 
<input type="text" name="q" value="Search..." onfocus="if (this.value == 'Search...') (this.value='')" onblur="if (this.value == '') (this.value='Search...')" /> 
संबंधित मुद्दे