I am outputing the values I want into an html input with PHP. But for some reason it is not recognizing the min
and step
attributes. How can html attributes be overridden?
EDIT - I am customizing Anspress for Wordpress. Here is a link to look through the files for the plugin.
Any thoughts??
HTML that structures the output (ap_ask_form()
is in the PHP code below)
<div id="ap-form-main" class="active ap-tab-item">
<?php ap_ask_form(); ?>
</div>
ask_form.php
class AnsPress_Ask_Form
{
public function __construct()
{
add_filter('ap_ask_form_fields', array($this, 'ask_form_name_field'));
}
public function ask_form_name_field($args){
if(!is_user_logged_in() && ap_opt('allow_anonymous'))
$args['fields'][] = array(
'name' => 'name',
'label' => __('Name', 'ap'),
'type' => 'text',
'placeholder' => __('Enter your name to display', 'ap'),
'value' => sanitize_text_field(@$_POST['name'] ),
'order' => 12
);
return $args;
}
}
new AnsPress_Ask_Form;
/**
* Generate ask form
* @param boolean $editing
* @return void
*/
function ap_ask_form($editing = false){
global $editing_post;
$is_private = false;
if($editing){
$is_private = $editing_post->post_status == 'private_post' ? true : false;
}
$args = array(
'name' => 'ask_form',
'is_ajaxified' => true,
'submit_button' => ($editing ? __('Update question', 'ap') : __('Post question', 'ap')),
'fields' => array(
array(
'name' => 'title',
'label' => __('Title', 'ap'),
'type' => 'text',
'placeholder' => __('Question in one sentence', 'ap'),
'desc' => __('Write a meaningful title for the question.', 'ap'),
'value' => ( $editing ? $editing_post->post_title : sanitize_text_field( @$_POST['title'] ) ),
'order' => 5,
'attr' => 'data-action="suggest_similar_questions"',
'autocomplete' => false,
),
array(
'name' => 'title',
'type' => 'custom',
'order' => 5,
'html' => '<div id="similar_suggestions"></div>'
),
array(
'name' => 'description',
'label' => __('Description', 'ap'),
'type' => 'editor',
'desc' => __('Write description for the question.', 'ap'),
'value' => ( $editing ? apply_filters('the_content', $editing_post->post_content) : @$_POST['description'] ),
'settings' => apply_filters( 'ap_ask_form_editor_settings', array(
'textarea_rows' => 8,
'tinymce' => ap_opt('question_text_editor') ? false : true,
'quicktags' => ap_opt('question_text_editor') ? true : false ,
'media_buttons' =>false,
)),
),
array(
'name' => 'ap_upload',
'type' => 'custom',
'html' => ap_post_upload_form(),
'order' => 10
),
array(
'name' => 'parent_id',
'type' => 'hidden',
'value' => ( $editing ? $editing_post->post_parent : get_query_var('parent') ),
'order' => 20
)
),
);
if(ap_opt('allow_private_posts'))
$args['fields'][] = array(
'name' => 'is_private',
'type' => 'checkbox',
'desc' => __('Only visible to admin and moderator.', 'ap'),
'value' => $is_private,
'order' => 12,
'show_desc_tip' => false
);
if(ap_opt('recaptcha_site_key') == '')
$reCaptcha_html = '<div class="ap-notice red">'.__('reCaptach keys missing, please add keys', 'ap').'</div>';
else
$reCaptcha_html = '<div class="g-recaptcha" id="recaptcha" data-sitekey="'.ap_opt('recaptcha_site_key').'"></div><script type="text/javascript"
src="https://www.google.com/recaptcha/api.js?hl='.get_locale().'&onload=onloadCallback&render=explicit" async defer></script><script type="text/javascript">var onloadCallback = function() {
widgetId1 = grecaptcha.render("recaptcha", {
"sitekey" : "'.ap_opt('recaptcha_site_key').'"
});
};</script>';
if(ap_opt('enable_recaptcha'))
$args['fields'][] = array(
'name' => 'captcha',
'type' => 'custom',
'order' => 100,
'html' => $reCaptcha_html
);
/**
* FILTER: ap_ask_form_fields
* Filter for modifying $args
* @var array
* @since 2.0
*/
$args = apply_filters( 'ap_ask_form_fields', $args, $editing );
if($editing){
$args['fields'][] = array(
'name' => 'edit_post_id',
'type' => 'hidden',
'value' => $editing_post->ID,
'order' => 20
);
}
$form = new AnsPress_Form($args);
echo $form->get_form();
echo ap_post_upload_hidden_form();
}
/**
* Generate edit question form, this is a wrapper of ap_ask_form()
* @return void
* @since 2.0.1
*/
function ap_edit_question_form()
{
ap_ask_form(true);
}
My extension to this plugin using the Wordpress hook "plugins_loaded" (the ask_form_amount_field($args, $editing)
below is part of a class I made; if someone would like me to post it I can, just trying to show all the relevant info without making it too lengthy...)
public function ask_form_amount_field($args, $editing){
if(wp_count_terms('question_amount_field') == 0)
return $args; //Taxonomy stuff?
global $editing_post;
if($editing){
$amount_field = get_the_terms( $editing_post->ID, 'question_amount_field' );
$amount_field = $amount_field[0]->term_id;
} //More things purely related to taxonomy, it seems.
$args['fields'][] = array(
'name' => 'amount_field',
'label' => __('Amount field label', 'amount_field_for_anspress'),
'type' => 'number',
'value' => ( $editing ? $amount_field : sanitize_text_field(@$_POST['amount_field'] )),
'taxonomy' => 'question_amount_field',
'orderby' => ap_opt('form_amount_field_orderby'),
'desc' => __('Enter the amount you wish to tip someone for fulfilling your request.', 'amount_for_anspress'),
'order' => 7,
'min' => 0.50,
'step' => 0.25
);
return $args;
}
}}//The class ends here; its beginning is not shown above
function find_do_for_anspress() {
$discounts = new Find_Do_For_AnsPress();
}
add_action( 'plugins_loaded', 'find_do_for_anspress' );
Which of the following is not a type of attribute for input tag? Explanation: Day is not defined in the pre-defined attribute list of input tag. Week attribute defines week and year when used as attribute in input tag. Month specifies month and year when it is accessed in input tag.
HTML attributes are generally classified as required attributes, optional attributes, standard attributes, and event attributes: Usually the required and optional attributes modify specific HTML elements.
Here's a shorter javascript solution with jQuery, please note that you may need to change $ to jQuery because of how Wordpress implements jQuery
//set values
minValue = 100;
stepValue = 100;
//select element by ID, update min attribute
$("#my-element-id").attr("min", minValue);
//select element by ID, update step attribute
$("#my-element-id").attr("step", minValue);
Here's the documentation on jQuery attr() for more information, it can be used to get and/or set attributes: https://api.jquery.com/attr/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With