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.