Hi,
I added button in Serial Number doctype via Customization tool. Now I want to execute few functions when user clicks to the button.
Can that be done via custom script, without editing files on server?
I wrote this to Serial No custom client script.
var clicked = 0;
frappe.ui.form.on('Serial No', {
refresh(frm) {
frm.add_custom_button('Alter data', toggleDataFields(frm));
}
});
function toggleDataFields(frm)
{
clicked = ! clicked;
frm.set_df_property('firmware_version', 'read_only', clicked);
console.log(clicked);
}
I guess passing frm to custom function is a problem.
Uncaught TypeError: t is not a function
at HTMLButtonElement.i (page.js:452)
at HTMLButtonElement.dispatch (jquery.min.js:3)
at HTMLButtonElement.r.handle (jquery.min.js:3)
frappe.ui.form.on('Serial No', {
refresh(frm) {
frm.add_custom_button('Alter data', function(){
frm.trigger("alter_data");
});
},
alter_data: function(frm){
var enable = frm.get_field("firmware_version").df.readonly;
frm.toggle_enable('firmware_version', enable);
}
});
3 Likes