Login

Form widget for text inputs with external link. version2

Author:
ramusus
Posted:
June 3, 2009
Language:
Python
Version:
1.0
Tags:
django forms form widgets widget
Score:
1 (after 1 ratings)

This widget is answer for this question: http://stackoverflow.com/questions/946243/form-widget-for-text-inputs-with-external-link-wanted

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import re
from django import forms
class LinkFieldWidget(Widget):
    '''
    A TextField widget with previewing link, generated from field's value with special url mask
    '''
    def __init__(self, text, url='%s', *args, **kwargs):
        self.url = url
        self.text = text
        if not re.search('%', self.url):
            raise forms.ValidationError, u'Invalid URL mask'
        super(LinkFieldWidget, self).__init__(*args, **kwargs)

    def render(self, name, value, attrs=None):
        output = []
        output.append('''<input type="text" name="%s" value="%s" onkeyup="$('a#%s-link').attr('href', '%s'.replace('%s', this.value)).css({'display': (this.value ? 'inline' : 'none')})" />''' % (name, value or '', name, self.url, '%s'))
        if self.url and self.text:
            output.append('<span><a href="%s" id="%s-link" target="blank" style="display: %s;">%s</a></span>' % (value and self.url % value or '#', name, value and 'inline' or 'none', self.text))

        return mark_safe(u' '.join(output))

More like this

  1. middleware: external links open in new window by christian 7 years, 10 months ago
  2. boostrap prepend-input for widgets by DimmuR 2 years, 10 months ago
  3. boostrap append-input for widgets by DimmuR 2 years, 10 months ago
  4. Autocomplete TextInput Widget w/ Static Data (jQuery UI) by JoeLinux 2 years, 4 months ago
  5. Custom Widget Types for HTML5 Form Fields by leveillej 5 years, 2 months ago

Comments

Please login first before commenting.