2016-09-11 3 views
0

Использование макета Bootstrap приложения, я пытался получить значение элемента, но не в состоянии сделать это, у меня есть попробовать несколько кода, какXPages: Как получить значение элемента CSJS

XSP.getElementById("#{id:elementName}").value 
$("#{id:elementName}").val() 
x$("#{id:elementName}").val() 
dojo.byId("#{id:elementName}").value 

, но не из четыре работают, как я могу получить значение элемента от клиентов

ответ

2

2 Проверяем.

  1. ли XSP.getElementById ("# {ID: ELEMENTNAME}") код правильно найти элемент? Примечание: вы должны использовать идентификатор управления на стороне сервера, а не любое другое свойство, например. имя не будет работать. если вы пытаетесь сделать это по имени, вы должны использовать другой метод.

  2. Какой тип элемента вы пытаетесь получить? если это ввод текста, то вы можете использовать .value, но если это выбрать, или какой-либо другой тип управления может быть другой метод/свойство

Чтобы проверить, что вы правильно найти элемент попробуйте это (в случае кнопки CSJS):

var el = XSP.getElementById('#{id:serverSideControlId}'); 
console.log(el); 

Нажмите кнопку затем проверить консоли JavaScript в вашем браузере, вы должны увидеть какую-то информацию на консоль, отображающая элемент, например:

<input type="text" name="view:_id1:inputText1" id="view:_id1:inputText1"> 

Если он не может найти элемент, то ваши идентификаторы должны быть неправильно, и вы увидите null

После того, как вы уверены, что вы получаете элемент, то вы можете попробовать использовать XSP.getFieldValue (узел) функция, которая, как я думаю, имеет некоторые умственные способности внутри, чтобы правильно найти значение в зависимости от типа элемента.

// Note that you pass in the element that you retrieved already, and not the id 
var val = XSP.getFieldValue(el); 

Вот рабочий пример с InputText:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 

    <xp:inputText id="inputText1" value=""></xp:inputText> 

    <xp:button value="Get Element Value" id="button1"> 
     <xp:eventHandler event="onclick" submit="false"> 
      <xp:this.script><![CDATA[ 

     var el = XSP.getElementById('#{id:inputText1}'); 

     // Check your javascript console in your browser 
     console.log(el); 

     var val = XSP.getFieldValue(el); 

     // Check the contents of the value 
     console.log(val); 

     ]]></xp:this.script> 
     </xp:eventHandler> 
    </xp:button> 


</xp:view> 
+0

используя что с кнопка работает нормально, но когда я использую его с возвратом нуль ScriptBlock как при печати \t <хр: ScriptBlock ид =» scriptBlock2 "> \t \t \t \t <хр: this.value><[CDATA [ console.log! (" 1 «) \t вар эль = XSP.getElementById ('# {ID: inputText1}'); console.log (el); console.log (XSP.getFieldValue (el)); ]]> \t \t \t

+0

, что может быть связано с временем, этот документ не может быть готов, так что вы не можете быть в состоянии получить этот элемент. Что делать, если вы переносите эти утверждения в XSP.addOnLoad (function() {<< YOURSTATEMENTSHERE >>}); таким образом он не будет работать, пока документ не будет готов. Какое событие вы хотите запустить для своего кода? –

Смежные вопросы