Please try with:

     delChkbx = form.element('tr', _id='delete_record__row')
     delChkbx['_style'] = "position:absolute;left:-99999px;"


In my previous solution please set deletable=False in the form declaration.


Il giorno martedì 13 novembre 2012 23:11:48 UTC+1, Richard ha scritto:
>
> Hello Paolo,
>
> So far I have this:
>
> form.add_button(T('Delete'), '#', _class='btn-small btn-danger')
>             delete_confirmation = T('Are you sure you want to delete this 
> record?')
>             form.element('input[value='+T('Delete')+']')['_onclick'] = "if 
> (confirm('%s')) { jQuery('input[type=checkbox].delete').attr('checked', 
> 'checked'); jQuery('form').submit(); }" % delete_confirmation
>
> That work just fine, but I would avoid to show the checkbox check to 
> delete...
>
> I will read carfully what you propose.
>
> Thanks
>
> Richard
>
> On Tue, Nov 13, 2012 at 4:53 PM, Paolo Caruccio 
> <[email protected]<javascript:>
> > wrote:
>
>> a possible solution
>>
>> # controller
>> def update_record():
>>      form = crud.update(db.table, request.args(0))
>>
>>      delete_confirmation = T('Are you sure you want to delete this 
>> record?')
>>
>>      delBtn = A('Delete', _href=URL('delete_record', 
>>                                     args=['table', request.args(0)]),
>>                           _message=delete_confirmation,
>>                           _class='btn btn-small btn-danger',
>>                           _id='delBtn'
>>                           )
>>      form.element('input', _type='submit', replace=lambda me: CAT(me,delBtn
>> ))
>>      return dict(form=form)
>>
>> def delete_record():
>>     tablename = request.args(0)
>>     rec_id = request.args(1)
>>     crud.delete(db[tablename], rec_id, 
>>                                next=URL('select_table'), message=T(
>> 'Deleted'))
>>
>>
>> # view: 'update_record.html'
>>
>>
>> {{extend 'layout.html'}}
>>
>>
>> {{=form}}
>>
>>
>> <script type="text/javascript">
>>  $(document).ready(function() {
>>  $('#delBtn').click(function(e) {
>>  e.preventDefault();
>>  btn = $(this);
>>  thisHref = btn.attr('href');
>>  msg = btn.attr('message');
>>  if(confirm(msg)){
>>  window.location = thisHref;
>>  }
>>  });
>>  })
>> </script>
>>
>>
>> Il giorno martedì 13 novembre 2012 21:26:08 UTC+1, Richard ha scritto:
>>
>>> Hello,
>>>
>>> I would like to replace the way web2py allow the deletion of a record. 
>>> Instead of the check to delete then confirm then submit... I would add a 
>>> delete buttton on which is attached a confirmation message onclick then 
>>> when the confirmation is confirmed the record is deleted.
>>>
>>> Actually I had this :
>>>
>>>             form = crud.update(db.table, record)
>>>             form.add_button(T('Delete'), '#', _class='btn-small 
>>> btn-danger')
>>>             delete_confirmation = T('Are you sure you want to delete 
>>> this record?')
>>>             try:
>>>                 form.element('input[value='+T(**'Delete')+']')['_onclick'] 
>>> = "return confirm ('%s')" % delete_confirmation
>>>             except:
>>>                 pass
>>>
>>> What I miss is how to actually set form.deleted=true as said in the book 
>>> (http://web2py.com/books/**default/chapter/29/07#SQLFORM-**
>>> and-insert/update/delete<http://web2py.com/books/default/chapter/29/07#SQLFORM-and-insert/update/delete>
>>> )...
>>>
>>> I think I need a bit of JS, that detect the confirmation and will submit 
>>> the form.
>>>
>>> Am I on the right track?
>>>
>>> Richard
>>>
>>>
>>>  -- 
>>  
>>  
>>  
>>
>
>

-- 



Reply via email to