2012-07-19 12 views
11

मैं कुछ आसान कोशिश कर रहा हूं, बस p:inputText के अंदर टेक्स्ट मान प्राप्त करने के लिए जावास्क्रिप्ट सोचा, लेकिन मुझे यह नहीं मिल रहा है। शायद यह प्राइमफेस के साथ एक अलग प्रक्रिया है, क्योंकि यदि मैं इसका उपयोग नहीं करता, तो मुझे समस्या का सामना नहीं करना पड़ता है।पी से मूल्य पाठ प्राप्त करें: inputText जावास्क्रिप्ट

मेरे कोड:

<p:inputText value="any text" widgetVar="youtlink" ></p:inputText> 
     <p:commandButton value="Search" onclick="loadPlayer();" icon="ui-icon-search" /> 


<script type="text/javascript"> 
    function loadPlayer() { 
     alert(youtlink.text); 
    } 
</script> 

मुझे कोई सफलता JQuery के साथ भी करने की कोशिश की, लेकिन यह भी है।

गाया दृश्य:

<form id="editlFrm" enctype="application/x-www-form-urlencoded" method="post" 
name="editlFrm"> 
    <input id="editlFrm:j_id_7" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" 
    type="text" value="assd" name="editlFrm:j_id_7" role="textbox" aria-disabled="false" 
    aria-readonly="false" aria-multiline="false"> 
    <button id="editlFrm:j_id_8" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left" 
    type="submit" onclick="loadPlayer();;PrimeFaces.ab({source:'editlFrm:j_id_8'});return false;" 
    name="editlFrm:j_id_8" role="button" aria-disabled="false"> 
+0

आपका प्रश्न भी 'jQuery' टैग, आप समाधान उस में भी चाहता है? – Blaster

+0

'jQuery' rendered HTML के साथ काम करता है, इसलिए अपना टेम्पलेट/सर्वर-साइड डालने से वास्तव में मदद नहीं मिलती है। कृपया कुछ प्रस्तुत स्रोत पोस्ट करें। –

+0

<इनपुट आईडी = "editlFrm: j_id_7" class = "ui-inputfield ui- inputtext ui-widget ui-state-default ui-corner-all "type =" text "value =" assd "name =" editlFrm: j_id_7 "भूमिका =" टेक्स्टबॉक्स "aria-disabled =" false "aria-readonly =" false "एरिया-मल्टीलाइन =" झूठा "> <बटन आईडी =" editlFrm: j_id_8 "वर्ग =" ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left "type = "सबमिट करें" onclick = "loadplayer() ;; PrimeFaces.ab ({स्रोत: 'editlFrm: j_id_8'}); झूठी वापसी;" नाम = "editlFrm: j_id_8" भूमिका = "बटन" aria-disabled = "false"> –

उत्तर

12

अपने <p:inputText

की तरह इस

<p:inputText id="someID" value="any text" widgetVar="youtlink" ></p:inputText> 

करने के लिए id जोड़ें सुनिश्चित करें कि आपके प्रपत्र मिला prependId="false"

इस

alert(jQuery('#someID').val()); 

की तरह मूल्य का उपयोग की तुलना में अगर आप अपने फार्म के लिए prependId="false" जोड़ने के लिए आप के लिए jQuery("[id$='someID']").val()


संपादित

jQuery('#someID').val() से jQuery चयनकर्ता को बदलने के लिए करना होगा नहीं करना चाहती

आपके फॉर्म के रूप में editlFrm

इस (अपने p:inputText को आईडी someID आवंटित करने के लिए सुनिश्चित करें)

alert(jQuery('#editlFrm\\:someID').val()); 
+1

मैंने कोशिश की है, यह मुझे अपरिभाषित करता है। संपादन के लिए –

+0

+1, प्रस्तुत स्रोत को देखकर समझ में आता है। –

+1

अनदेखा –

6

मैं जब कुछ इसी तरह करने का प्रयास कर इस सवाल के पार आया, और पता चला कि PrimeFaces jq संपत्ति के माध्यम से एक विजेट के JQuery तत्व को उजागर करता है की कोशिश करो।

अपने उदाहरण में

तो, आप बस कर सकता है:

function loadPlayer() { 
    alert(youtlink.jq.val()); 
} 

अधिक हाल ही में PrimeFaces संस्करणों में (5.0 के बाद से), निर्यात विगेट्स अब वैश्विक नामस्थान को दूषित लगते हैं, लेकिन पहुँचा जा करने की जरूरत है PF() विधि का उपयोग कर। हालांकि JQuery तत्व को उसी तरह से एक्सेस किया जा सकता है।

function loadPlayer() { 
    alert(PF('youtlink').jq.val()); 
} 
0

इसके अलावा, वहाँ जावास्क्रिप्ट के साथ एक आसान तरीका:

<h:form id="yourID" > 
    <p:inputText id="anyID" value="any text" widgetVar="youtlink" ></p:inputText> 
</h:form> 

function loadPlayer() { 
    alert(document.getElementById('yourID:anyID').value); 
} 
1

मेरे मुझे लगता है कि सबसे आसान तरीका:

PF('youtlink').jq.val(); 

तुम भी इस तरह इनपुट क्षेत्र का मान सेट कर सकते हैं:

PF('youtlink').jq.val('new value'); 

अन्य तरीका:

PrimeFaces.widgets.youtlink.jq.val() 

और एक और तरीका है अगर आप आईडी है:

$(PrimeFaces.escapeClientId("yourFormID:youtlink")).val() 

पीएफ के साथ परीक्षण किया 5.3

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