I create in vm button
<input type="button" value="Change status" onClick="run()"/>
in js file i have
function run() { AJS.$(document).ready(function () { var popup = new AJS.Dialog(470, 250); popup.addHeader("Header"); popup.addButton("Ok", function (dialog) { //get content }); popup.addCancel("Cancel", function (dialog) { dialog.hide(); }, "#"); popup.addPanel("SinglePanel", getContentComment(), "singlePanel"); popup.show(); }); } function getContentComment() { var str = ""; str += "<textarea class='textarea' name='tag_name' id='tag_id' rows='8'></textarea>"; return str; }
and i want get text from text area.
it's doing in get content, i think, but how?
There are many opportunities to do that.
First, you have the "id" attribute in your input - just use it: AJS.$('#tag_id').val()!!
Second, you can add in AJS.Dialog constructor "id" property(look here), so when you need to get text from it's element it will be like this:
AJS.$('#example-dialog [name=tag_name]').val()
Next, to get dialog element you can use "popup.element" property
var dialog = new AJS.Dialog(100,100); var text = AJS.$(dialog.popup.element).find('[name=tag_name]').val()
Also, you can pass in "addPanel" not only html code, but the selector of element to paste. so you can create somewhere
(your page html) <div id="test"><textarea class='textarea' name='tag_name' rows='8'>/textarea></div>
... (js) popup.addPanel('SinglePanel', '#test', 'singlePanel');
and when you write AJS.$('#test [name=tag_name]').val() it works
Good luck!
Thanks! I have been trying to figure out why AJS.$('#comment').val() returns "" and after much fiddling in developer tools I almost gave up. This worked AJS.$('#comment-edit [name=comment]').val()
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.