[pmwiki-devel] Select & Option Dropdown-list Markup

Patrick R. Michaud pmichaud at pobox.com
Mon Dec 11 13:55:38 CST 2006


On Mon, Dec 11, 2006 at 07:27:58PM +0000, Hans wrote:
> Monday, December 11, 2006, 7:20:09 PM, Patrick wrote:
> 
> > More complex forms still deserve custom markup.
> 
> do you consider it as a more complex form if it uses javascript as an
> option, as I proposed for the <select> box markup
> 
> onchange='window.location.href=this.options[this.selectedIndex].value'
> 
> to have an option for instant jumping to a url page location?

At present, the core (:input:) markups do not allow javascript
from the markup.

However, a site administrator or recipe can of course provide
custom (:input:) markups that perform javascript validation.
For example, I might implement the "jsgoto" feature entirely
differently, by defining a new control type:

    (:input jumpbox {Page1$PageUrl}:)
    (:input jumpbox {Page2$PageUrl}:)
    (:input jumpbox {Page3$PageUrl}:)

to be generated from a pagelist by using:

    [[#jumpbox]]
    (:if equal {<$FullName}:)(:input form {$ScriptUrl}:)(:if:)
    (:input jumpbox value={=$PageUrl} label="{=$Title}":)
    (:if equal {>$FullName}:)
    (:input submit post "Go to Page":)
    (:input end:)
    [[#jumpboxend]]

The local customization needed over-and-above the core forms
markup to make (:input jumpbox:) work will likely be something 
as short as:

    $InputTags['jumpbox'][':html'] =
      "<select \$InputFormArgs 
         onchange='window.location.href=this.options[this.selectedIndex].value'
       >\$InputSelectOptions</select>";

    Markup('input-jumpbox', 'input-select',
      '/\\(:input\\s+jumpbox\\s.*?:\\)/e',
      "InputSelect(\$pagename, 'jumpbox', PSS('$0'))");

Once I get the forms.php update in place I'll write up a demonstration
page and/or recipe.

Pm



More information about the pmwiki-devel mailing list