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);
});
})