mannieschumpert
1/9/2014 - 2:21 PM

Filter the submit button in Gravity Forms to change the <input type="submit> element to a <button> element. There's an example in the Grav

Filter the submit button in Gravity Forms to change the <input type="submit> element to a element. There's an example in the Gravity Forms documentation, but it lacks the proper code to show your custom button text, AND removes important attributes like the onclick that prevents multiple clicks. I was trying to solve that.

<?php
// This is what I settled on
// Change Gravity Forms submit input to a button element
add_filter( 'gform_submit_button', 'form_submit_button', 10, 5 );
function form_submit_button ( $button, $form ){
    $button = str_replace( "input", "button", $button );
    $button = str_replace( "/", "", $button );
    $button .= "{$form['button']['text']}</button>";
    return $button;
}
// It's not perfect - it leaves some inapplicable attributes in the element
// but I can live with that to avoid a whole bunch more str_replace
// and it leaves the important onclick and tab index intact
<?php
// This try reveals my use case: I was actually trying to add a pseudo element to the input button
// This leaves the <input> as is, but prepends a span element
add_filter("gform_submit_button", "form_submit_button", 10, 2);
function form_submit_button($button, $form){
    return "<span></span>".$button;
}
// This kinda works for my purpose but is really not ideal
<?php
// filter the Gravity Forms button type
add_filter("gform_submit_button", "form_submit_button", 10, 2);
function form_submit_button($button, $form){
    // The following line is from the Gravity Forms documentation - it doesn't include your custom button text
    // return "<button class='button' id='gform_submit_button_{$form["id"]}'>'Submit'</button>";
    // This includes your custom button text:
    return "<button class='button' id='gform_submit_button_{$form["id"]}'>{$form['button']['text']}</button>";
}
// Oops this strips important stuff