2015-06-17 9 views
8

मुझे फॉर्म सबमिट करने के बाद पेपर-इनपुट-कंटेनर के अंदर लेबल को रीसेट करने में समस्या हो रही है। फॉर्म एक साधारण लॉगिन फॉर्म है। यदि कोई पृष्ठ किसी पृष्ठ को रीफ्रेश (ब्राउज़र से) के बिना फिर से लॉग इन, आउट और बैक करता है, तो लेबल इनपुट में एक मान के रूप में अटक गया प्रतीत होता है।पॉलिमर पेपर-इनपुट-कंटेनर मान रीसेट करें और लेबल

login forms

यहाँ तत्व के अंदर प्रपत्र है::

यहाँ अंतर दिखाने के लिए एक छवि है

<form is="iron-form"> 

    <paper-input-container id="email_container"> 
     <paper-input-error>E-mail or Password is incorrect</paper-input-error> 
     <label>E-Mail Address</label> 
     <input is="iron-input" id="email" on-blur="validateEmail" value="{{emailInput::input}}"> 
     </paper-input-container> 

     <paper-input-container id="password_container"> 
      <label>Password</label> 
      <input is="iron-input" id="password" type="password" value="{{passwordInput::input}}"> 
     </paper-input-container> 

    <paper-button raised dialog-dismiss>Cancel</paper-button> 
    <paper-button raised on-tap="handleCsrf">Login</paper-button> 

</form> 

इन दो दृष्टिकोण दोनों "प्रवेश के बाद" राज्य के लिए प्रपत्र प्राप्त वही:

// 
this.emailInput = null; 
this.passwordInput = null; 

// 
this.emailInput = ""; 
this.passwordInput = ""; 

मैंने सोचा कि यह अनुसंधान करेगा टी पूरे कंटेनर किसी भी तरह है, लेकिन यह करता है कुछ भी नहीं:

this.$.email_container = null; 
this.$.password_container = null; 

उत्तर

1

iron-input

bindValue स्ट्रिंग इस संपत्ति के बजाय बंधन दो तरह से डेटा के लिए मूल्य का प्रयोग करें।

<paper-input-container id="email_container"> 
    <paper-input-error>E-mail or Password is incorrect</paper-input-error> 
    <label>E-Mail Address</label> 
    <input is="iron-input" id="email" on-blur="validateEmail" bind-value="{{emailInput::input}}"> 
    </paper-input-container> 

    <paper-input-container id="password_container"> 
     <label>Password</label> 
     <input is="iron-input" id="password" type="password" bind-value="{{passwordInput::input}}"> 
    </paper-input-container> 

bindValue के साथ जाहिरा तौर पर दोनों this.emailInput = null और this.set('emailInput, null) चाल है।

+0

यह 'जैसे कस्टम इनपुट के लिए प्रतीत होता है। मेरा लोहा इनपुट के रूप में एक नियमित इनपुट है। यह बहुलक दस्तावेज़ों से लगभग verbatim है। – anthony

+0

कोशिश की यह समस्या हल नहीं करता है। मुझे भी विश्वास है कि वाक्यविन्यास यह है। $। emailInput = null –

+0

'बाइंड-वैल्यू' प्रॉपर्टी दो तरीकों से बाध्यकारी लागू करती है। 'मान' संपत्ति केवल उपयोगकर्ता इनपुट के कारण सूचित करती है। फिर 'event.target.bindValue' के माध्यम से 'ऑन-टैप' ईवेंट हैंडलर, या' this.email.bindValue' (आईडी 'ईमेल' का उपयोग करके) के माध्यम से बाध्यकारी दो तरीकों तक पहुंचें। प्रासंगिक दस्तावेज़ [यहां] (https://elements.polymer-project.org/elements/iron-input)। – user982671

-1

आप reset() विधि को फोन करके एक पूरा iron-form रीसेट कर सकते हैं:

document.getElementById('idOfForm').reset(); 
0

मुझे यकीन है कि क्यों पहला रूप से काम नहीं किया (मैं एक कागज-इनपुट उपयोग कर रहा हूँ नहीं कर रहा हूँ, नहीं लोहे इनपुट , और यह वहां काम करता है), यह संभव है कि कोड कहीं भी दिखाए गए कोड में कहीं न हो। लेकिन कुछ और प्रयास करने के लिए सीधे मूल्य स्थापित कर रही है:

this.$.email.value = null; // where 'email' is the ID of the iron-input 

मैं पूरी तरह यकीन है कि यह कैसे bind-value के साथ बातचीत नहीं कर रहा हूँ, लेकिन डॉक्स कहना

iron-inputbind-value संपत्ति है कि दर्पण कहते हैं value संपत्ति

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