* of the value from 'default'. Overrides 'buttonlabel-raw'.
* - buttonlabel-raw: HTMLto display for the button display text, instead
* of the value from 'default'.
+ * - formnovalidate: Set to true if clicking this button should suppress
+ * client-side form validation. Used in HTMLFormFieldCloner for add/remove
+ * buttons.
*
* Note that the buttonlabel parameters are not supported on IE6 and IE7 due to
* bugs in those browsers. If detected, they will be served buttons using the
/** @var array $mFlags Flags to add to OOUI Button widget */
protected $mFlags = [];
+ protected $mFormnovalidate = false;
+
public function __construct( $info ) {
$info['nodata'] = true;
+
+ $this->setShowEmptyLabel( false );
+
+ parent::__construct( $info );
+
if ( isset( $info['flags'] ) ) {
$this->mFlags = $info['flags'];
}
+ if ( isset( $info['formnovalidate'] ) ) {
+ $this->mFormnovalidate = $info['formnovalidate'];
+ }
+
# Generate the label from a message, if possible
if ( isset( $info['buttonlabel-message'] ) ) {
$this->buttonLabel = $this->getMessage( $info['buttonlabel-message'] )->parse();
} elseif ( isset( $info['buttonlabel'] ) ) {
- if ( $info['buttonlabel'] === ' ' ) {
+ if ( $info['buttonlabel'] === ' ' || $info['buttonlabel'] === "\u{00A0}" ) {
// Apparently some things set   directly and in an odd format
- $this->buttonLabel = ' ';
+ $this->buttonLabel = "\u{00A0}";
} else {
$this->buttonLabel = htmlspecialchars( $info['buttonlabel'] );
}
} elseif ( isset( $info['buttonlabel-raw'] ) ) {
$this->buttonLabel = $info['buttonlabel-raw'];
}
-
- $this->setShowEmptyLabel( false );
-
- parent::__construct( $info );
}
public function getInputHTML( $value ) {
'type' => $this->buttonType,
'name' => $this->mName,
'value' => $this->getDefault(),
+ 'formnovalidate' => $this->mFormnovalidate,
] + $this->getAttributes( [ 'disabled', 'tabindex' ] );
if ( $this->isBadIE() ) {