Javascript 从3选择传递数据';s到一个输入

Javascript 从3选择传递数据';s到一个输入,javascript,jquery,css,forms,Javascript,Jquery,Css,Forms,我有三个选择字段(日、月、年)。我需要将它们的值自动传递到一个(隐藏的)输入字段(将被传输到数据库) 不幸的是,它似乎是错误的。如何更好地编写它以避免此类错误?当前数据未传递。完整代码如下: var dd_value=document.getElementById(“dd_值”); var mm_值=document.getElementById(“mm_值”); var yy_value=document.getElementById(“yy_值”); (dd_值+mm_值+yy_值)。on

我有三个选择字段(日、月、年)。我需要将它们的值自动传递到一个(隐藏的)输入字段(将被传输到数据库)

不幸的是,它似乎是错误的。如何更好地编写它以避免此类错误?当前数据未传递。完整代码如下:

var dd_value=document.getElementById(“dd_值”);
var mm_值=document.getElementById(“mm_值”);
var yy_value=document.getElementById(“yy_值”);
(dd_值+mm_值+yy_值)。onchange=函数(){
var textbox=document.getElementById(“bdaysummary”);
textbox.value=dd_值;
};
.cc选择器输入{
边距:0;填充:0;
-webkit外观:无;
-moz外观:无;
外观:无;
}
.visa{背景图片:url(http://i.imgur.com/lXzJ1eB.png);}
.mastercard{背景图像:url(http://i.imgur.com/SJbRQF7.png);}
.cc选择器输入:活动+.drinkcard cc{opacity:.9;}
.cc选择器输入:选中+.drinkcard cc{
-webkit过滤器:无;
-moz过滤器:无;
过滤器:无;
}
.drinkcard cc{
光标:指针;
背景尺寸:包含;
背景重复:无重复;
显示:内联块;
宽度:100px;高度:70px;
-webkit过渡:所有100毫秒的易用性;
-moz转换:所有100毫秒的易用性;
过渡:所有100毫秒都容易进入;
-webkit过滤器:亮度(1.8)灰度(1)不透明度(.7);
-moz过滤器:亮度(1.8)灰度(1)不透明度(.7);
过滤器:亮度(1.8)灰度(1)不透明度(.7);
}
.drinkcard抄送:悬停{
-webkit过滤器:亮度(1.2)灰度(.5)不透明度(.9);
-moz过滤器:亮度(1.2)灰度(.5)不透明度(.9);
过滤器:亮度(1.2)灰度(.5)不透明度(.9);
}
/*额外费用*/
a:访问{color:#888}
a{color:#444;文本装饰:无;}
p{页边距底部:.3em;}

从两个选项中选择一个:


-一天- 1. 2. 3. 4. 5. 6. 7. 8. 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -月- 未知的 一月 二月 前进 四月 也许 六月 七月 八月 九月 十月 诺贝尔 十二月 -年- 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977 1976 1975 1974 1973 1972 1971 1970 1969 1968 1967 1966 1965 1964 1963 1962 1961 1960 1959 1958 1957 1956 1955 1954 1953 1952 1951 1950 1949 1948 1947 1946 1945 1944 1943 1942 1941 1940 1939 1938 1937 1936 1935 1934 1933 1932 1931 1930 1929 1928 1927 1926 1925 1924 1923 1922 1921 1920 1919 1918 1917 1916 1915 1914 1913 1912 1911 1910 1909 1908 1907 1906 1905 1904 1903 1902 1901 1900
您的问题在于

(dd_value+mm_value+yy_value).onchange  = function() {...}
元素上的“+”运算符将元素强制为字符串并将它们连接起来。因此,基本上,您是将“onchange”属性分配给字符串,而不是元素。逐个分配它们,或者像这样使用jQuery:

$([dd_value, mm_value, yy_value]).change(function() {...})
尝试类似的方法(jQuery):


$(文档).ready(函数(){
$('#dd#u值,#mm#u值,#yy#u值')。更改(函数(){
dd_值=$('#dd_值').val();
mm_值=$('#mm_值').val();
yy_值=$(“#yy_值”).val();
结果=dd_值+'-'+mm_值+'-'+yy_值;
$('bdayummary').val(结果);
});
})
推荐:
对日数和月数使用零填充格式(例如01而不是1),以防止出现不必要的行为

注意: 正如Hubert所说,您必须为没有有效值的第一个选项考虑一个解决方案。此代码只关注从选定输入收集数据并将其放入另一个输入中

$("#yy_value,#dd_value,#mm_value").change(function() {
var dd_value = $("#dd_value").val();
var mm_value = $("#mm_value").val();
var yy_value = $("#yy_value").val();
alert(dd_value+"-"+mm_value+"-"+yy_value); 
});
试试这段代码,这会对你有用。你应该为这段代码包含jquery

编辑

if(dd_value != '- Day -' && mm_value !='- Month -' && yy_value != '- Year -')
        {
            alert(dd_value+"-"+mm_value+"-"+yy_value);  
        }

if(dd_value != '- Day -' && mm_value !='- Month -' && yy_value != '- Year -')
        {
            alert(dd_value+"-"+mm_value+"-"+yy_value);  
        }
警报(dd_值+“-”+mm_值+“-”+yy_值)

if(dd_value != '- Day -' && mm_value !='- Month -' && yy_value != '- Year -') { alert(dd_value+"-"+mm_value+"-"+yy_value); }
$('.bd').on('change',function(){
    var allSelect=true; //for validation purpose
    $.each($('.bd'),function(){
        var value=$(this).find('option:selected').text();//store the current value
        if(value=='- Day -' || value=='- Month -' || value=='- Year -')
        //if value selected is any of these value then set allSelect=false
            allSelect=false
    });
    if(allSelect) //Proceed only if its true
    {
        var date=$('#dd_value option:selected').text(); //get date
        var month=$("#mm_value option:selected").text(); //get month
        var year=$("#yy_value option:selected").text(); //get year
        var newDate=date +"-"+month+"-"+year; //combine it
        $("#bdayummary").val(newDate); //display in textbox
    }
});
$('.bd').on('change',function(){
    var allSelect=true;
    $.each($('.bd'),function(){
        var value=$(this).find('option:selected').val();
        if(value=='- Day -' || value=='- Month -' || value=='0' || value=='- Year -')
        {
           allSelect=false;
           return false; //to break loop if any found
        }
    });
    if(allSelect)
    {
        var date=$('#dd_value option:selected').val();
        var month=$("#mm_value option:selected").val();
        var year=$("#yy_value option:selected").val();
        if(month<10)
            month="0"+month;
        var newDate=date +"-"+month+"-"+year;
        $("#bdayummary").val(newDate);
    }
});
$(document).ready(function(){
    $('#dd_value, #mm_value, #yy_value').change(function(){
        var dd_value = $('#dd_value').val();
        var mm_value = $('#mm_value').val();
        var yy_value = $('#yy_value').val();
        var result = "";
        // check that the values are not undefined (missing value)
        if ($.inArray("undefined", [ typeof dd_value, typeof mm_value, typeof yy_value ]) < 0)
        {
            // add padding zero
            dd_value = dd_value.length === 1 ? "0"+dd_value : dd_value;
            mm_value = mm_value.length === 1 ? "0"+mm_value : mm_value;
            var result = dd_value+'-'+mm_value+'-'+yy_value;
        }
        $('#bdayummary').val(result);
    });
})