Получить данные из input

Тема в разделе "JavaScript", создана пользователем hipachka, 11 окт 2012.

Модераторы: ZiX
  1. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    78
    Вопрос как я понимаю достаточно простой. Я очень слабо понимаю что и как делать в JS.
    Проблема заключается в следующем. Мне нужны данные из поля. <input class="sessid" name="sessid" type="text" value="614eecc93f5f8f6665966b798ea0c2fc"> Пропобовал получить двумя способами.

    так работает
    'sessid': {'value' : $("#sessid").val()},
    а так нет. Выдает NaN
    'sessid': + $("#sessid").val(),
    хотя вроде должно работать. Подскажите пожалуйста как получить данные в переменную. Имя у нее должно быть без ключа [] просто строка sessid...

    HTML
    HTML:
    <form id="contact-form">
                <input class="sessid" name="sessid" type="text" value="614eecc93f5f8f6665966b798ea0c2fc">
                <div class="success"> Contact form submitted! <br><strong>We will be in touch soon.</strong></div>
                <fieldset>
     
       
                    <label class="name">
                        <input type="text" value="Name">
                        <span class="error">*This is not a valid name.</span>
                        <span class="empty">*This field is required.</span>
                        <span class="clear"></span>
                    </label>
                    <label class="email">
                        <input type="text" value="E-mail">
     
                        <span class="error">*This is not a valid email address.</span>
                        <span class="empty">*This field is required.</span>
                        <span class="clear"></span>
                    </label>
                    <label class="phone">
                        <input type="text" value="Telephone">
                        <span class="error">*This is not a valid phone number.</span>
     
                        <span class="empty">*This field is required.</span>
                        <span class="clear"></span>
                    </label>
                    <label class="message">
                        <textarea>Message</textarea>
                        <span class="error">*The message is too short.</span>
                        <span class="empty">*This field is required.</span>
     
                        <span class="clear"></span>
                    </label>
                    <div class="buttons"><span><a class="button" data-type="reset">Reset</a></span><span><a class="button" data-type="submit">Submit</a></span></div>
                </fieldset>
            </form>            

    JS
    Код:
    //forms
    ;(function($){
        $.fn.forms=function(o){
            return this.each(function(){
                var th=$(this)
                    ,_=th.data('forms')||{
                        errorCl:'error',
                        emptyCl:'empty',
                        invalidCl:'invalid',
                        notRequiredCl:'notRequired',
                        successCl:'success',
                        successShow:'4000',
                        mailHandlerURL:'make.php',
                        ownerEmail:'ibsn@mail.ru',
                        stripHTML:true,
                        smtpMailServer:'localhost',
                        targets:'input,textarea',
                        controls:'a[data-type=reset],a[data-type=submit]',
                        validate:true,
                        rx:{
                            ".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
                            ".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
                            ".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
                            ".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
                            ".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
                            ".message":{rx:/.{20}/,target:'textarea'}
                        },
                        preFu:function(){
                            _.labels.each(function(){
                                var label=$(this),
                                    inp=$(_.targets,this),
                                    defVal=inp.val(),
                                    trueVal=(function(){
                                                var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
                                                return defVal==''?defVal:tmp
                                            })()
                                trueVal!=defVal
                                    &&inp.val(defVal=trueVal||defVal)
                                label.data({defVal:defVal})                           
                                inp
                                    .bind('focus',function(){
                                        inp.val()==defVal
                                            &&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
                                    })
                                    .bind('blur',function(){
                                        _.validateFu(label)
                                        if(_.isEmpty(label))
                                            inp.val(defVal)
                                            ,_.hideErrorFu(label.removeClass(_.invalidCl))                                       
                                    })
                                    .bind('keyup',function(){
                                        label.hasClass(_.invalidCl)
                                            &&_.validateFu(label)
                                    })
                                label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
                            })
                            _.success=$('.'+_.successCl,_.form).hide()
                        },
                        isRequired:function(el){                       
                            return !el.hasClass(_.notRequiredCl)
                        },
                        isValid:function(el){                       
                            var ret=true
                            $.each(_.rx,function(k,d){
                                if(el.is(k))
                                    ret=d.rx.test(el.find(d.target).val())                                   
                            })
                            return ret                       
                        },
                        isEmpty:function(el){
                            var tmp
                            return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
                        },
                        validateFu:function(el){                       
                            el.each(function(){
                                var th=$(this)
                                    ,req=_.isRequired(th)
                                    ,empty=_.isEmpty(th)
                                    ,valid=_.isValid(th)                           
                           
                                if(empty&&req)
                                    _.showEmptyFu(th.addClass(_.invalidCl))
                                else
                                    _.hideEmptyFu(th.removeClass(_.invalidCl))
                           
                                if(!empty)
                                    if(valid)
                                        _.hideErrorFu(th.removeClass(_.invalidCl))
                                    else
                                        _.showErrorFu(th.addClass(_.invalidCl))                           
                            })
                        },
                        getValFromLabel:function(label){
                            var val=$('input,textarea',label).val()
                                ,defVal=label.data('defVal')                           
                            return label.length?val==defVal?'nope':val:'nope'
                        }
                        ,submitFu:function(){
                            _.validateFu(_.labels)                       
                            if(!_.form.has('.'+_.invalidCl).length)
                                $.ajax({
                                    type: "POST",
                                    url:_.mailHandlerURL,
                                    data:{
                                        user_name:_.getValFromLabel($('.name',_.form)),
                                        user_email:_.getValFromLabel($('.email',_.form)),
                                        phone:_.getValFromLabel($('.phone',_.form)),
                                        fax:_.getValFromLabel($('.fax',_.form)),
                                        sessid:_. {'value' : $("#sessid").val()},
                                        state:_.getValFromLabel($('.state',_.form)),
                                        MESSAGE:_.getValFromLabel($('.message',_.form)),
                                        owner_email:_.ownerEmail,
                                        stripHTML:_.stripHTML
                                    },
                                    success: function(){
                                        _.showFu()
                                    }
                                })       
                        },
                        showFu:function(){
                            _.success.slideDown(function(){
                                setTimeout(function(){
                                    _.success.slideUp()
                                    _.form.trigger('reset')
                                },_.successShow)
                            })
                        },
                        controlsFu:function(){
                            $(_.controls,_.form).each(function(){
                                var th=$(this)
                                th
                                    .bind('click',function(){
                                        _.form.trigger(th.data('type'))
                                        return false
                                    })
                            })
                        },
                        showErrorFu:function(label){
                            label.find('.'+_.errorCl).slideDown()
                        },
                        hideErrorFu:function(label){
                            label.find('.'+_.errorCl).slideUp()
                        },
                        showEmptyFu:function(label){
                            label.find('.'+_.emptyCl).slideDown()
                            _.hideErrorFu(label)
                        },
                        hideEmptyFu:function(label){
                            label.find('.'+_.emptyCl).slideUp()
                        },
                        init:function(){
                            _.form=_.me                   
                            _.labels=$('label',_.form)
     
                            _.preFu()
                       
                            _.controlsFu()
                                                       
                            _.form
                                .bind('submit',function(){
                                    if(_.validate)
                                        _.submitFu()
                                    else
                                        _.form[0].submit()
                                    return false
                                })
                                .bind('reset',function(){
                                    _.labels.removeClass(_.invalidCl)                               
                                    _.labels.each(function(){
                                        var th=$(this)
                                        _.hideErrorFu(th)
                                        _.hideEmptyFu(th)
                                    })
                                })
                            _.form.trigger('reset')
                        }
                    }
                _.me||_.init(_.me=th.data({forms:_}))
                typeof o=='object'
                    &&$.extend(_,o)
            })
        }
    })(jQuery)
    $(window).load(function(){
        $('#pro_contact-form,#form1,#contact-form').forms({
            ownerEmail:'ibsn@mail.ru'
        })
    })
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    естественно не работает... запись 'sessid': + $("#sessid").val(), подразумевает наличие элемента с id="sessid", а у вас есть только с class="sessid" name="sessid"
    одно из двух: или добавьте в <input class="sessid" name="sessid" type="text" value="614eecc93f5f8f6665966b798ea0c2fc"> id="sessid" чтоб получилось <input class="sessid" name="sessid" id="sessid" type="text" value="614eecc93f5f8f6665966b798ea0c2fc"> и тогда запись 'sessid': + $("#sessid").val() будет верной или нужно изменить эту запись, например на
    'sessid': + $(".sessid").val(),
     
    hipachka нравится это.
  3. hipachka

    hipachka

    Регистр.:
    16 мар 2009
    Сообщения:
    391
    Симпатии:
    78
    Я пробовал по разному и class и id. Данные не передаются в FireBug пишется NaN т.е. так значение передается
    Код:
    'sessid': {'value' : $("#sessid").val()},
    а так нет :
    Код:
    ['sessid': + $("#sessid").val(),
    потом я пробовал еще другие способы передачи которе нашел на бурж форумах в одном из них переменная отдала "614" быть может проблема в типе переменной? Потом я решил попробовать передать в эту переменную только буквы и только цифры. Так вот цифры передаются как надо, а буквы не передаются совсем ...