On a second thought it is not too bad IF all widget have a _name attribute in the outer html tag.
On May 8, 12:08 pm, mdipierro <[email protected]> wrote: > Yes there is a problem! > > I fixed it for you in trunk (launchpad) but actually it is a bigger > problem that it seems. With fix is that if the widget is too complex > it may not display the error (because it is not obvious where the > error should be displayed). > I will keep working on this but let me know if this is fine for you > for now. > > Massimo > > On May 8, 11:09 am, Scott Hunter <[email protected]> wrote: > > > That may have more of a symptom than the cause. The other widget I > > defined was: > > > def choice_widget(field,value,labels,required): > > """ > > Widget to substitute a pup-up menu with a set of radio buttons > > """ > > id=field._tablename+'_'+field.name > > sro = [] > > i = 0 > > selected = False > > for x in labels: > > if str(value)==str(i): > > sro.append( OPTION(x,_value=i,_selected="selected") > > ) > > selected = True > > else: > > sro.append( OPTION(x,_value=i) ) > > i += 1 > > set = [x for x in range(len(labels))] > > if not selected: > > sro = [OPTION('', _value=-1)]+sro > > if not required: > > set = [-1]+set > > kw = {'_class':'integer', '_id':id, '_name':field.name, > > 'requires':IS_IN_SET(set, error_message='required > > information!')} > > return SELECT(*sro, **kw) > > > And here's an example of its use: > > > db.define_table('tbl', SQLField('field', 'integer', widget=lambda > > a,b:choice_widget(a,b,['a','b'],True))) > > > When I bring up an insertion form (through appadmin or my own > > controller), all is well. But if I try to submit, and there is an > > error (as there will be if nothing is changed), the nesting originally > > described appears on the page w/ the error message (for a SELECT, > > you'd have to view the source to see the nesting). If I reload the > > form, the nesting appears (but the error messages do not). If I > > navigate away from and back to the insertion form, there's no nesting > > (and no error message). > > > Thanks again, > > Scott > > > On May 8, 10:46 am, mdipierro <[email protected]> wrote: > > > > I cannot reproduce the problem but there is a typo in your code > > > > "Widget to allow size of textarea to be specified"" > > > > should be > > > > "Widget to allow size of textarea to be specified" > > > > Massimo > > > > On May 8, 9:12 am, Scott Hunter <[email protected]> wrote: > > > > > Just downloaded v 1.61.4 (Mac), and I'm having a problem w/ widgets. > > > > For example: > > > > > def ta_widget(field,value,nr): > > > > "Widget to allow size of textarea to be specified"" > > > > return TEXTAREA("xyz", _type="text", _class="text", _rows=nr, > > > > _cols=40, > > > > _name=field.name, > > > > _id=field._tablename+'_'+field.name) > > > > > ... > > > > SQLField('textfield','text',widget=lambda a,b:ta_widget(a,b,1)), > > > > ... > > > > > Yields the following HTML, which presents as a text area w/ a copy of > > > > the tag included in the content: > > > > > <textarea class="text" cols="40" id="worksheets_heatdist_defects" > > > > name="heatdist_defects" rows="1" type="text"><textarea class="text" > > > > cols="40" id="worksheets_heatdist_defects" name="heatdist_defects" > > > > rows="1" type="text">xyz</textarea></textarea> > > > > > I have a similar problem w/ a widget that yields a SELECT producing > > > > one SELECT inside another (which the browser can handle). > > > > > I'd used the ta_widget in earlier versions of web2py (01/09?). > > > > > Thanks for the help, > > > > Scott --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

