figured it out had to mode autobox to have unique input box names as
autoobox does not put in any names or id's on the input bummer I hate
moding plugins

Mean Mike

On Jul 13, 2:30 pm, Mean Mike <mcgra...@gmail.com> wrote:
> I've been trying to figure out how to add validation to jquery.autobox
> and it works except if I have more than one on the page it only
> validates the first one on submit though it will validate all other
> fields around it ! I can get it to validate the remaining autobox
> inputs if I give them focus and then take it a way that said I could
> get around the problem by setting focus on inputs then setting focus
> on something else but that's just sloppy coding.
>
> here is the  html before it is submited
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
> <html>
>         <head>
>                 <title></title>
>         </head>
>         <body>
>                 <form id="myform" action="commit_album" method="post" 
> name="myform">
>                         <ul class="ui-sortable" id="imagelist">
>                                 <li class="info" id="li1">
>                                         <label class="categorylabel 
> accordion" id="label1"><img src="/
> secure/img/accordionopen.gif" alt="toggle accordion">Image 1:</label>
>                                         <div class="block" id="block1">
>                                                 <div class="imagecontainer" 
> id="imagecontainer1">
>                                                         <img 
> src="/img/image_854_1.JPG">
>                                                         <p id="remove1" 
> class="remove" name="1">
>                                                                 Remove
>                                                         </p>
>                                                 </div>
>                                                 <div class="infocontainer" 
> id="infocontainer1">
>                                                         <ul id="ul1">
>                                                                 <li>
>                                                                         
> <label>Photographer</label><input name="photographer1"
> class="required" type="text">
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label>File Title</label><input id="title1" name="title1"
> class="required" type="text">
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label>File Description/Caption</label>
>                                                                         
> <textarea name="caption1" rows="5" cols="40"
> class="textfield">
> </textarea>
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label>Embargo date</label><input id="embargodate1"
> name="embargodate1" class="required" type="text"><img src="/secure/img/
> cal.gif">
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label for="tags1" class="accordion">Tags</label>
>                                                                         <ul>
>                                                                               
>   <li>
>                                                                               
>           <input style="display: none;" id="tags1" class="autobox"
> type="text">
>                                                                               
>           <ul class="autobox-hldr">
>                                                                               
>                   <li class="autobox-input">
>                                                                               
>                           <input class="tag_check" id="abi0" type="text">
>                                                                               
>                   </li>
>                                                                               
>           </ul>
>                                                                               
>   </li>
>                                                                         </ul>
>                                                                 </li>
>                                                         </ul>
>                                                 </div>
>                                         </div>
>                                 </li>
>                                 <li class="info" id="li2">
>                                         <label class="categorylabel 
> accordion" id="label2"><img src="/
> secure/img/accordionopen.gif" alt="toggle accordion">Image 2:</label>
>                                         <div class="block" id="block2">
>                                                 <div class="imagecontainer" 
> id="imagecontainer2">
>                                                         <img 
> src="/img/063shell.jpg">
>                                                         <p id="remove2" 
> class="remove" name="2">
>                                                                 Remove
>                                                         </p>
>                                                 </div>
>                                                 <div class="infocontainer" 
> id="infocontainer2">
>                                                         <ul id="ul2">
>                                                                 <li>
>                                                                         
> <label>Photographer</label><input name="photographer2"
> class="required" type="text">
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label>File Title</label><input id="title2" name="title2"
> class="required" type="text">
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label>File Description/Caption</label>
>                                                                         
> <textarea name="caption2" rows="5" cols="40"
> class="textfield">
> </textarea>
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label>Embargo date</label><input id="embargodate2"
> name="embargodate2" class="required" type="text"><img src="/secure/img/
> cal.gif">
>                                                                 </li>
>                                                                 <li>
>                                                                         
> <label for="tags2" class="accordion">Tags</label>
>                                                                         <ul>
>                                                                               
>   <li>
>                                                                               
>           <input style="display: none;" id="tags2" class="autobox"
> type="text">
>                                                                               
>           <ul class="autobox-hldr">
>                                                                               
>                   <li class="autobox-input">
>                                                                               
>                           <input class="tag_check" id="abi1" type="text">
>                                                                               
>                   </li>
>                                                                               
>           </ul>
>                                                                               
>   </li>
>                                                                         </ul>
>                                                                 </li>
>                                                         </ul>
>                                                 </div>
>                                         </div>
>                                 </li>
>                         </ul>
>                 </form>
>         </body>
> </html>
>
> and the query that makes it all happen
>
> $(document).ready(function(){
>
> function apply_autobox(objid) {
>     $(objid).autobox({
>         list: suggestions,
>         match: function(typed) {
>             this.typed = typed;
>             this.pre_match = this.text;
>             this.match = this.post_match = '';
>             if (!this.ajax && !typed || typed.length === 0) {
>                 return true;
>             }
>             var match_at = this.text.search(new RegExp("\\b" + typed,
> "i"));
>             if (match_at != -1) {
>                 this.pre_match = this.text.slice(0, match_at);
>                 this.match = this.text.slice(match_at, match_at +
> typed.length);
>                 this.post_match = this.text.slice(match_at +
> typed.length);
>                 return true;
>             }
>             return false;
>         },
>         insertText: function(obj) {
>             return obj.text;
>         },
>         templateText: "<li><%= pre_match %><span class='matching' ><%=
> match %></span><%= post_match %></li>",
>     });
>
> };
>
> function add_validation_methods() {
>         jQuery.validator.addMethod("tags", function(value,element) {
>                 return this.optional(element) || value.match(/^[a-zA-Z0-9,!\$ 
> ]+
> $/);
>         }, "Tags can consist of letters, numbers. Tags to be hidden from
> Live2 should start with a \"!\" Anything else is not allowed.");
>
>         jQuery.validator.addMethod("tag_exists", function(value, element) {
>                 return $(element).parent().prev().attr("class") == "bit-box";
>         }, "This field is required to contain tags.");
>
>     jQuery.validator.addClassRules({
>                 tag_check:{
>                         tag_exists: true,
>                         tags: true
>                 }
>     });
>
> };
>
>         add_validation_methods();
>         apply_autobox("#tags" + id);
>         $("li .autobox-input :input").addClass("tag_check");
>
> });
>
> any help would be greatly appreciated
> Mean Mike

Reply via email to