1

我创建了一个表单,其中有 2 个文本字段和一个文件字段。我在'text'字段上添加了 Javascript。如果用户离开'text'字段并按下提交按钮,All Fields are Required字体变为红色,当用户不上传任何图像时,我也想将其变为红色。我尝试了各种方法,但它不起作用。请告诉我这样做的方法。

      <script type="text/javascript">

function myFunction()
{
    var category_name   =   document.forms["insert"]["sub_category_name"].value;
    //var image =           document.forms["insert"]["file"].item();

    var error           =   document.getElementById("error");


    if(category_name=="" )
    {
        error.style.color="Red";
        return false;
        }
        else
        {
            //message.innerHTML="Data Inserted!";
            }
    }


</script>

PHP 代码

    <?php

echo "
    <form name='insert' action='sub_categories.php' method='POST' onSubmit='return myFunction()' enctype='multipart/form-data'>
        <table class='gridtable' border=2 bordercolor='#CCCCCC' cellpadding='10'>
        <tr>
        <th>
            Sub-Category Name: </th><td>    <input type='text' name='sub_category_name' ></td></tr>";





            echo "
        <tr>
        <th>
            Image1:</th><td> <input type='file' name= 'file' ></td></tr> 

            ";

谢谢

4

2 回答 2

5

只需通过 id 获取文件输入并检查其值是否为空:

if(document.getElementById('file').value=='') {//something here }
于 2013-09-10T08:16:16.167 回答
0

您最好、最简单的选择是使用 JQuery,如下所示:

$("input[type='file'][name='file']").filter(function (){
    return !this.value
}).length; 

不能使用 ':empty' 的原因是因为 ':empty' 匹配元素没有任何后代的情况。输入元素不能有后代,因此您的“输入”将始终将“:空”评估为真。

于 2013-09-10T08:16:43.193 回答