मैं सबमिशन बटन क्लास को कैसे बदलूँ?


12
 <input type="submit" class="form-submit" value="" name="op" id="edit-submit">

मैं कक्षा को "फ़ॉर्म-सबमिट" से "फ़ॉर्म-सबमिटऑन" में बदलना चाहता हूं।

मैं इसे कैसे कर सकता हूं? कक्षा "फॉर्म-सबमिट" कहां से आती है?

जवाबों:


22

अगर मैं तुम होते तो मैं क्लास का नाम नहीं बदलता, बल्कि अपनी क्लास को फॉर्म एलिमेंट में जोड़ता। आप अपने विषय में एक कस्टम मॉड्यूल (या Drupal 7 के मामले में) में हुक_फॉर्म_ल्टर को लागू करके ऐसा कर सकते हैं । कोड कुछ इस तरह दिखेगा:

<?php
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id = 'my_form') {
    $form['actions']['submit']['#attributes']['class'][] = 'form-submitone';
  }
}
?>

वैसे, सबमिट बटन एलिमेंट जरूरी नहीं है $form['actions']['submit']। आपको यह पता लगाना होगा कि आपकी विशिष्ट स्थिति में सबमिट बटन कौन सा तत्व है। आप $ फॉर्म चर का आउटपुट देकर ऐसा कर सकते हैं; मैं डेवेल मॉड्यूल को स्थापित करने और dsm($form);उपरोक्त फ़ंक्शन को जोड़ने की सलाह देता हूं ।


तुम कैसे जानते हो सबमिट बटन को यह एक वर्ग दे सकते हैं $ प्रपत्र [ 'क्रियाओं'] [ 'प्रस्तुत'] [ '# गुण'] [ 'क्लास'] []।
enjoylife

2
यह प्रपत्र API संदर्भ में है, api.drupal.org/api/drupal/…
marcvangend

एपीआई इस $ फॉर्म ['# विशेषताएँ'] = सरणी ('वर्ग' => सरणी ('खोज-फ़ॉर्म') के रूप में दिखाता है; आप इसे इस रूप में क्यों लिखते हैं। $ फॉर्म ['क्रियाएं'] ['सबमिट'] ['# विशेषताएँ ’] [' वर्ग’] []। और एक [] है? धन्यवाद
आनंदमय

7
यदि आप ऐसा करते हैं $form['actions']['submit']['#attributes']['class'] = array('form-submitone');, तो आप उन सभी वर्गों से आगे निकल जाएंगे जो पहले से निर्धारित हैं। यदि आप ऐसा करते हैं $form['actions']['submit']['#attributes'] = array('class' => array('form-submitone'));, तो आप न केवल मौजूदा कक्षाओं, बल्कि सभी विशेषताओं को अधिलेखित कर देंगे। (PS उपरोक्त उत्तर के लिए मेरा जोड़ भी देखें।)
marcvangend

यह Drupal 8 में भी काम करता है।
अचराफेड जेड

0

यह कोड मूल रूप से उपयोगकर्ता dor फॉर्म सबमिट बटन पर आपके कस्टम वर्ग को जोड़ता है।

function subscriber_form(){
    $form['submit'] = array(
    '#type'  => 'submit',
    '#attributes'=>array('class'=> array('mybtn')),
    '#ajax' => array(
      'callback' => 'subscriber_ajax_callback',
    ),
    '#value' =>'Submit', // @FIXME doesn't render quotes properly
  );

}

2
यह सही नहीं है, #attributes सरणी में "क्लास" आइटम के लिए एक सरणी होना आवश्यक है:'class' => array("mybtn-class", "mybtn-class2")
DrCord

हालांकि @ देवेन्द्र जवाब काम करते हैं, @ कॉर्ड सुझाव के बाद, यह होना चाहिए'#attributes' => array('class' => array('mybtn', 'mybtn-2'))
johnatasjmo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.