Just curious if you're working with a template override of the form.
Reason I'm asking is the function Joomla.submitbutton is typically added to the page by the template for the form.
Also, Joomla.getOptions is defined in core.js, which templates can avoid or block loading.
My guess is you're using a template that has decided for whatever reason to stop ...
With Joomla core you need to setup a menu structure that will correspond to what you want to achieve with your URLs. Menus are important in Joomla.
From the example of the URLs in your question - it seems like you have created a menu item for the article1.
If you want all articles of that category (cat1) to be reachable under the cat1/article1,art2,art3 ...
Your plugin appears to be written for a very old version of Joomla! The event in current versions is onContentBeforeSave. You are also missing $context argument. It's a good idea to check for context to make sure that you're modifying the correct content type (e.g. article).
public function onContentBeforeSave($context, $article, $isNew)
if ($context !...
So you would need to change it to be json and array based. Here is a rough example I setup as a default field which works as expected:
test0 is the in two parts, test is the name of the field and 0 is the field of the repeatable field.
the rest of it you can see matches ...