我尝试仅在3个输入(2个输入,1个选择下拉菜单)设置了特定值时才调用函数。表格包含多个输入,选择&复选框。在发送表单之前执行此调用。
第一个输入是选择/下拉菜单。
第二个是标准输入,只有当它至少有1个数字(最多没有限制),一个点然后是1个数字时才应该检查。样本:19212.6
第三个是隐藏输入,其值应大于1.
我知道jQuery中的.change函数可以帮助我,但我不知道如何正确调整它以适应我的设置。最重要的是,如果输入与上面提到的过滤器匹配,那么它应该在MsSQL查询(PHP)之后运行。
$('input').change(function(){
}
代码与PHP混合 目前,我已经创建了3个更改(每个输入/选择1个),它们调用一个函数并检查所有值是否合规。 它更好,更好吗?干净的方式来做到这一点?
部分代码:
<SCRIPT language="javascript">
$(document).ready(function ()
$( ".gdctype" ).change(function() {
var gdc = $(this).find('option:selected').text();
if (gdc == "UK"){
$('.ilsel').css({ 'display': 'none'});
$('.casel').css({ 'display': 'none'});
$('.bslsel').css({ 'display': 'none'});
$('.rusel').css({ 'display': 'none'});
$('.uspsel').css({ 'display': 'none'});
$('.uksel').removeAttr('style');
}
if (gdc == "IL"){
$('.uksel').css({ 'display': 'none'});
$('.casel').css({ 'display': 'none'});
$('.bslsel').css({ 'display': 'none'});
$('.rusel').css({ 'display': 'none'});
$('.uspsel').css({ 'display': 'none'});
$('.ilsel').removeAttr('style');
}
if (gdc == "CA"){
$('.uksel').css({ 'display': 'none'});
$('.ilsel').css({ 'display': 'none'});
$('.bslsel').css({ 'display': 'none'});
$('.rusel').css({ 'display': 'none'});
$('.uspsel').css({ 'display': 'none'});
$('.casel').removeAttr('style');
}
if (gdc == "BSL"){
$('.uksel').css({ 'display': 'none'});
$('.ilsel').css({ 'display': 'none'});
$('.casel').css({ 'display': 'none'});
$('.rusel').css({ 'display': 'none'});
$('.uspsel').css({ 'display': 'none'});
$('.bslsel').removeAttr('style');
}
if (gdc == "RU"){
$('.uksel').css({ 'display': 'none'});
$('.ilsel').css({ 'display': 'none'});
$('.casel').css({ 'display': 'none'});
$('.bslsel').css({ 'display': 'none'});
$('.uspsel').css({ 'display': 'none'});
$('.rusel').removeAttr('style');
}
if (gdc == "US"){
$('.uksel').css({ 'display': 'none'});
$('.ilsel').css({ 'display': 'none'});
$('.casel').css({ 'display': 'none'});
$('.bslsel').css({ 'display': 'none'});
$('.rusel').css({ 'display': 'none'});
$('.uspsel').removeAttr('style');
}
});
var uniquePUS = <?php if($uniquePUS!=NULL) echo $uniquePUS;?> <?php if($uniquePUS==NULL) echo "1";?>;
$('.addPUS').click(function() {
var copy = $('#PUS').clone(true,true);
var formId = 'PUS' + window.uniquePUS;
copy.attr('id', formId );
copy.removeAttr('style');
copy.find(':input#PUSAddress').each(function() {
$(this).replaceWith("<input type='text' id='" + $(this).attr("id") + window.uniquePUS+"' id='" + $(this).attr("name") + window.uniquePUS+"' >");
});
copy.find(':input#PUSCity').each(function() {
$(this).replaceWith("<input type='" + $(this).attr("type") + "' id='" + $(this).attr("id") + window.uniquePUS+"' name='" + $(this).attr("name") + window.uniquePUS + "' />");
});
copy.find(':input#PUSState').each(function() {
$(this).replaceWith("<input type='" + $(this).attr("type") + "' id='" + $(this).attr("id") + window.uniquePUS+"' name='" + $(this).attr("name") + window.uniquePUS + "' size=2 />");
});
copy.find(':input#PUSZip').each(function() {
$(this).replaceWith("<input type='" + $(this).attr("type") + "' id='" + $(this).attr("id") + window.uniquePUS+"' name='" + $(this).attr("name") + window.uniquePUS + "' size=4 />");
});
$('#uspselin').append(copy);
window.uniquePUS++;
$('#main').find(':input#uniquePUS').each(function() {
$(this).replaceWith("<input type='" + $(this).attr("type") + "' id='uniquePUS' name='" + $(this).attr("name") + "' value='"+window.uniquePUS+"' />");
});
});
$('.delPUS').click(function() {
$(this).closest("ul").remove();
});
function chktrp(nr){
if(nr != null && nr != undefined){
var pattern = new RegExp(/^[0-9]+\.[0-9]+$/);
return pattern.test(nr);
}
else{
return false;
}
}
function chkfields(){
if (
$('select[name="gdctype"]').val() == 'US'
&&
$('input[name="uniquePUS"]').val() > '0'
&&
chktrp($('input[name="Trip"]').val())
) {
return true;
}else{
return false;}
}
$('input[name="Trip"]').change(function(){
if (chkfields()){
alert('Works1');
}
});
$('input[name="uniquePUS"]').change(function(){
if (chkfields()){
alert('Works2');
}
});
$('select[name="gdctype"]').change(function(){
if (chkfields()){
alert('Works3');
}
});
});
如果相关,我可以添加HTML代码。
答案 0 :(得分:0)
您可以像这样获取表单字段的值:
$('input[name="inputName"]').val()
您知道可以测试您的字段:
if (
$('input[name="inputName"]').val() != ''
&&
$('input[name="inputName2"]').val() > 2
) {
.... call your function
}