【问题标题】:Pass custom css_class to deform Button通过自定义 css_class 来变形 Button
【发布时间】:2014-02-20 19:16:44
【问题描述】:

我有一个基本的表单和架构..

class NewSchema(colander.MappingSchema):
        name = colander.SchemaNode(colander.String(),
            widget=text_input)

schema = NewSchema()
myform = Form(schema, buttons=('submit'))

现在这工作正常,但是我想将自定义 css 类传递给提交按钮,我希望这样做:

schema = PaymentSchema()
myform = Form(schema, buttons=('submit', css_class="someclass"))

但这不起作用,我怎样才能将这个类属性传递给这样的按钮?

编辑:我也试过:

butt = deform_form.Button(name='submita', css_class="test")
schema = PaymentSchema()
myform = Form(schema, buttons=(butt,))

渲染html

<div class="actions">

    <button
        id="deformsubmita"
        name="submita"
        type="submit"
        class="btn btnText submit primaryAction"
        value="submita"

        >
    <span>Submita</span>
    </button>

</div>

【问题讨论】:

  • 您使用的是哪个版本的变形?

标签: pyramid deform colander


【解决方案1】:

您的第一个代码示例将无法运行,第二个代码示例在正确的轨道上,但变形按钮类名称可能有错字。比较你的和我的。差不多了,继续努力。

根据API docs 传递字符串序列或按钮对象序列。

按钮

字符串序列或deform.form.Button对象 表示将放置在底部的提交按钮 形式。如果在序列中传递了任何字符串,则将其转换为 变形.form.Button 对象。

因此,我创建了一个应用了 CSS 类的按钮,并在创建表单时将其以元组的形式传递给参数 buttons。本例使用deform2.0a2

class WikiViews(object):
    def __init__(self, request):
        self.request = request

    @property
    def wiki_form(self):
        schema = WikiPage()
        submit = deform.Button(name='submit', css_class='red')
        return deform.Form(schema, buttons=(submit,))

    @view_config(route_name='wikipage_add',
             renderer='deform2_demo:templates/wikipage_addedit.pt')
    def wikipage_add(self):
        form = self.wiki_form.render()
        ... 

deform 将其呈现为 HTML:

    <form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8" class="deform">

      <fieldset class="deformFormFieldset">   

        <input type="hidden" name="_charset_">
        <input type="hidden" name="__formid__" value="deform">

         <div class="form-group  item-title" title="" id="item-deformField1">    
           <label for="deformField1" class="control-label required" id="req-deformField1">Title</label>    
           <input type="text" name="title" value="" id="deformField1" class=" form-control ">

         </div>

         <!-- removed HTML for more deform fields -->

         <div class="form-group">
           <button id="deformsubmit" name="submit" type="submit" class="btn btn-primary red" value="submit">Submit</button>

         </div>
      </fieldset>

    </form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2018-06-26
    • 1970-01-01
    • 2017-11-01
    • 2014-08-23
    • 1970-01-01
    相关资源
    最近更新 更多