frappe-syntax-clientscripts

Write Frappe client-side JavaScript for form events, validation, and server calls.

Updated May 31, 2026
One-click install
npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-syntax-clientscripts-anonymousminati
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-syntax-clientscripts
Source: https://github.com/anonymousminati/Res-POS/tree/main/.claude/skills/syntax/frappe-syntax-clientscripts
Command: npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-syntax-clientscripts-anonymousminati

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you write correct Frappe and ERPNext client scripts without guessing the right event hooks, field APIs, or server-call patterns. It reduces bugs caused by direct field assignment, misplaced queries, unsafe async validation, and child table refresh mistakes.

Core Features & Use Cases

  • Parent and child form events: setup, refresh, validate, onload, and field change handlers.
  • Field manipulation and UI control: set values, toggle visibility, enforce required fields, and manage custom buttons safely.
  • Server interaction and data workflows: frappe.call, frm.call, database lookups, dialogs, alerts, and list view customization.
  • Use case: build a Sales Order client script that filters customers in setup, validates totals before save, and recalculates row amounts when quantities change.

Quick Start

Ask for a Frappe client script for your target DocType that uses the correct event hooks, validates inputs, and updates the UI safely.

Frequently Asked Questions about frappe-syntax-clientscripts

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write Frappe client scripts for child table form events?

Frappe client scripts handle child table events by binding handlers to the parent form and accessing rows via frm events, safely recalculating row amounts and refreshing fields on quantity changes.

What is the correct way to use frappe.call in ERPNext client scripting?

Server interaction in ERPNext client scripting uses frappe.call or frm.call to execute database lookups and data workflows, ensuring correct async validation and browser-safe UI manipulation without unsafe direct assignment.

How do I validate form fields before saving in a Frappe client script?

To validate inputs before saving, Frappe client scripts enforce required fields and validate totals within the validate event hook, using async patterns to prevent saving until all conditions pass.

Can I customize list views and dialog interactions using Frappe form scripting?

Frappe form scripting supports list view customization and dialog interactions, allowing you to manage alerts and custom buttons safely through browser-safe UI manipulation and correct frm methods.

Why are my ERPNext field updates not showing on the form refresh?

Field updates fail to show on refresh when direct assignment is used instead of frm methods, which are required to enforce required fields, toggle visibility, and manage synchronization safely.