Campos null igualar a 0

Por favor, preciso da ajuda de vocês,

quando clico no botão (Exebir resultado) caso o usuário não informe alguma despesa não funciona o calculo (salario - despesa), gostaria de inserir valor das despesas = 0 e não nulo (isso caso o não for inserido nenhuma despesa) para que o calculo funcione corretamente.

[code]<html>
<head>
<title>Trabalho Aplicação p/ Internet I</title>
<style>
body{
background:#f9ebae;
font-family: Verdana, sans-serif;
font-size:11px;
color:#5e5e5e;}
#divform{
width:600px;

		}
	#divdados2{
		  width: 300px;
		  height: 60px;
		  padding-left: 10px;
		  top:-300px;
		  
		}
	#divmensagens{
		  width: 322px;
		  height: 400px;
		  padding-left: 10px;
		  padding-top: 160px;
		  border: solid 1px #ccc;
		}
		
	#divdados{
		  background-color:#f3c598;
		  border:solid 1px #e8b084;
		  color:#ba4c32;
		  width: 300px;
		  height: 60px;
		  padding-left: 10px;
		}
	#divvalores{
		  background-color:#f3c598;
		  border:solid 1px #e8b084;
		  color:#ba4c32;
		  width: 300px;
		  height: 150px;
		  padding-left: 10px;
		}


&lt;/style&gt;
&lt;script&gt;

function calculaDados(){
		
		var obj_form = document.getElementById('calculaDados');
		var obj_nome = document.getElementById('fnome');
		var obj_cargo = document.getElementById('fprofissao');
		var obj_salario = document.getElementById('fsalario');
		var obj_msg_erro = document.getElementById('divdados2');
		var divdados2 = '';

		if(obj_nome.value == '')
			divdados2 = 'Por favor preencher o campo NOME';
		else if(obj_cargo.value == '')
			divdados2 = 'Por favor preencher o campo PROFISSÃO';
		else if(obj_salario.value == '')
			divdados2 = 'Por favor preencher o campo SALARIO';
		if(divdados2 == '')
			obj_form.submit();
		else
		obj_msg_erro.innerHTML = divdados2;
				
		var transporte = document.getElementById('ftransporte');
		if(transporte.value == '' )
			document.getElementById(transporte = 0);

		var educacao = document.getElementById("feducacao").value;
		var alimentacao = document.getElementById("falimentacao").value;
		var lazer = document.getElementById("flazer").value;
		var telefone = document.getElementById("ftelefone").value;
		var salario  = document.getElementById("fsalario").value;

		var mensagem = "&lt;h3&gt; Seus Gastos &lt;/h3&gt;";
		mensagem += "<b>Transporte:</b>&nbsp;R$ "+transporte+"<br>";
		mensagem += "<b>Educa??o:</b>&nbsp;R$ "+educacao+"<br>";
		mensagem += "<b>Alimenta??o:</b>&nbsp;R$ "+alimentacao+"<br>";
		mensagem += "<b>Lazer:</b>&nbsp;R$ "+lazer+"<br>";
		mensagem += "<b>Telefone:</b>&nbsp;R$ "+telefone+"<br>";
		
		document.getElementById("divvalores").innerHTML = mensagem;
		
		document.getElementById("divvalores").style.setProperty("display","block",null);
		
		var saldo = parseFloat(salario)-parseFloat(transporte)-parseFloat(educacao)-parseFloat(alimentacao)-parseFloat(lazer)-parseFloat(telefone);
		document.getElementById("divvalores").innerHTML += "&lt;h3&gt;Seu saldo mensal ? R$ "+saldo+"&lt;/h3&gt;";
		
	  
	
}
		document.getElementById("divvalores").innerHTML = mensagem;
		
		document.getElementById("divvalores").style.setProperty("display","block",null);

		
function atualiza(campo,valor){
		document.getElementById(campo).innerHTML=valor;
	  }
	  function mExp(campo,valor){
		document.getElementById(campo).innerHTML=valor;
	  }
	  function eExp(campo){
		document.getElementById(campo).innerHTML="";
	  }
	  function foca(campo){
		document.getElementById(campo).focus();
	  }	
	  function limpaDados(campo){
		document.getElementById("fnome").value = null;
		document.getElementById("fprofissao").value = null;
		document.getElementById("fsalario").value = null;
		document.getElementById("ftransporte").value = null;
		document.getElementById("feducacao").value = null;
		document.getElementById("falimentacao").value = null;
		document.getElementById("flazer").value = null;
		document.getElementById("ftelefone").value = null;
		document.getElementById("divvalores").style.setProperty("display","none",null);
		document.getElementById("snome").innerHTML=null;
		document.getElementById("sprofissao").innerHTML=null;
		document.getElementById("ssalario").innerHTML=null;
	  }	
		
		
&lt;/script&gt;
&lt;/head&gt;
&lt;body onload="foca('fnome')"&gt;
&lt;div id="divform"&gt; 
	&lt;h3&gt;Meus Dados&lt;/h3&gt;
	&lt;h5&gt; Campos com o * é obrigatório o preenchimento&lt;/h5&gt;

		Nome: *&lt;input type="text" size="60" name="nome" id="fnome" onFocus="mExp('enome','Escreva o seu nome')" onblur="atualiza('snome',this.value);eExp('enome')"&gt; &lt;span id="enome"&gt;&lt;/span&gt;<br>
		Profissao: *&lt;input type="text" size="60" name="endereco" id="fprofissao" onFocus="mExp('eprofissao','Escreva sua profissao')" onblur="atualiza('sprofissao',this.value);eExp('eprofissao')"&gt;&lt;span id="eprofissao"&gt;&lt;/span&gt;<br>
		Salario Atual: *&lt;input type="text" size="50" name="cidade" id="fsalario" onFocus="mExp('esalario','Escreva seu salário')" onblur="atualiza('ssalario',this.value);eExp('esalario')"&gt;&lt;span id="esalario"&gt;&lt;/span&gt;<br><br>
	
	&lt;h3&gt;Meus Gastos Mensais&lt;/h3&gt;
		Transporte:&lt;input type="text" size="10" name="transporte" id="ftransporte"&gt;<br>
		Educação:&lt;input type="text" size="10" name="educacao" id="feducacao"&gt;<br>
		Alimentação:&lt;input type="text" size="10" name="alimentacao" id="falimentacao"&gt;<br>
		Lazer:&lt;input type="text" size="10" name="lazer" id="flazer"&gt;<br>
		Telefone:&lt;input type="text" size="10" name="telefone" id="ftelefone"&gt;<br>
		&lt;input type="button" onClick="calculaDados()" value="Exibir Resultado"&gt;
		&lt;input type="button" onClick="limpaDados()" value="Iniciar novamente"&gt;


&lt;/div&gt;
&lt;div id="divmensagens"&gt;
	&lt;div id="divdados" style="display:block;"&gt;
		<b>Nome:&nbsp;</b>&lt;span id ="snome"&gt;&lt;/span&gt;<br>
		<b>Profissao:&nbsp;</b>&lt;span id ="sprofissao"&gt;&lt;/span&gt;<br>
		<b>Salario Atual (R$):&nbsp;</b>&lt;span id ="ssalario"&gt;&lt;/span&gt;<br>
	&lt;/div&gt;<br>
	
	&lt;div id="divdados2" style="display:block;"&gt;
	&lt;/div&gt;<br>
	
	&lt;div id="divvalores" style="display:none;"&gt;
		&lt;h4 id="hsaldo"&gt;&lt;/h4&gt;
	&lt;/div&gt; 
&lt;/div&gt;
&lt;/body&gt;

</html>[/code]

if (valor == null){ valor = 0; }

Além de fazer o teste que o Rodrigo sitou você poderia utilizar os tipos primitivos… O valor sempre virá 0. :smiley:

Nestas linhas o campo deveria retornar 0 e não retorna

var transporte = document.getElementById('ftransporte'); if (transporte == null){ transporte = 0; }


A única coisa que JavaScript tem em comum com a linguagem Java é o nome.
Tópico movido.

Não é Java, é JavaScript.

O que acontecia é que você apenas estava comparando o elemento porém na verdade você queria saber se o valor do elemento é null, caso sim ou você pode atribuir elemento e depois pegar a propriedade value dele, ou atribuir diretamente o value dele para uma variavel como nestes 2 casos
Att


var transporte = document.getElementById('ftransporte');  
            if (transporte.value == null){    
            transporte.value = 0;    
}  

Ou

var transporte = document.getElementById('ftransporte').value;  
            if (transporte == null){    
            transporte = 0;    
}  

Meu,
nao precisa complicar enchendo o seu codigo de IFS.

A unica coisa que vc precisa fazer eh algo do tipo:
HTML:

Transporte : <input type="text" id="transporte" value="">
<button id="btnSend" onclick="javascript:checkValue();">Send</button>

Javascript:

function checkValue() {    
  var _transporteNode = document.getElementById("transporte");
  if(_transporteNode) {      
      _transporteNode.value = _transporteNode.value || 0;
  }
}

Exemplo online: http://jsfiddle.net/QZBkn/4/

//Daniel

verifique se o valor n é undefined.

Nao vai funcionar, input text se vc nao digitar nada o valor vai ser uma empty string, o que eh diferente de undefined.

Faca um test no firebug console.

var v = ""
if (v === undefined) {
 console.log("blabla");
}
else {
  console.log("it doesn't work! buaaaa!");
}

//Daniel